前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >struts2(三)---使用EL表达式,显示Action中的数据

struts2(三)---使用EL表达式,显示Action中的数据

作者头像
MickyInvQ
发布2020-09-27 15:29:22
8190
发布2020-09-27 15:29:22
举报
文章被收录于专栏:InvQ的专栏InvQ的专栏

转载请注明:http://blog.csdn.net/uniquewonderq

使用EL表达式,显示Action中的数据

问题:

在struts2框架下,如何将业务控制器Action的数据传递给JSP,并在JSP上显示出这些数据。

解决方案:

Struts2会自动的将Action的数据传递给JSP,并且对传递方式进行了封装,在使用时变得十分方便,甚至不需要使用request对象。它仅仅要求我们在Action中定义属性,并为属性提供get方法,那么从Action跳转到JSP时,struts2会自动的通过这些get方法将这些属性的值传递给JSP。最终在JSP上我们可以使用EL表达式来显示Action的属性值。

我们还是利用StrutsDay01项目的实例,目前HelloAction中已经有了两个属性,即realName、user,而该Action最终跳转的页面为hello.jsp,我们的目标是在hello.jsp上使用EL表达式输出这些属性值。

实现步骤:

步骤一:在Action中,给属性追加get方法

在HelloAction中,给realName属性追加get方法,用于页面的EL表达式访问并取值,user属性已经有了get方法,不需要再追加。代码如下:

代码语言:javascript
复制
package action;

import entity.User;

public class HelloAction {
		public  HelloAction(){
			System.out.println("实例化 Action...");
		}
		//定义基本类型属性,接受表单参数:姓名
		private String realName;
		public void setRealName(String realName){
			System.out.println("注入参数realName...");
			this.realName=realName;
		} 
		public String getRealName(){
			return this.realName;
		}
		//定义实体对象属性,接受表单参数:用户名、密码
		private User user;
		public void setUser(User user){
			this.user=user;
		}
		public User getUser(){
			return this.user;
		}
		//在业务方法中输出"Hello,Action"
		public String sayHello(){
			System.out.println("Hello,Action");
			//输出基本类型数据
			System.out.println("姓名:"+realName);
			
			//输出域模型方法注入的参数
			System.out.println("用户名:"+user.getUserName());
			System.out.println("密码:"+user.getPassword());
			return "success";
		}
}

步骤二:在JSP上,使用EL表达式显示Action的属性值,代码如下:

代码语言:javascript
复制
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  
  <body>
    <h1>hello,Struts2!</h1>
    
    <h1>姓名:${realName}</h1>
    <h1>用户名:4{user.userName}</h1>
    <h1>密码:${user.password}</h1>
  </body>
</html>

步骤三:测试

重新部署项目并启动tomcat,在浏览器中输入地址:http://localhost:8888/StrutsDay01/

效果如下图所示:

在文本框中输入内容,点击提交,此时表单数据提交给了HelloAction,HelloAction接受到了表单数据后,跳转到了hello.jsp,我们在hello.jsp上使用EL表达式来输出HelloAction的属性值,效果如下图:

小结:

1.Action中追加属性时,不必区别何时加get方法,可是加set方法,通常每个属性都有get和set方法。

2.页面上写EL表达式,实际上与两种注入方式中,对应的表单文本框name表达式写法一致。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-07-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档