struts2(三)---使用EL表达式,显示Action中的数据
2015-07-10 14:54
597 查看
转载请注明: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方法,不需要再追加。代码如下:
步骤二:在JSP上,使用EL表达式显示Action的属性值,代码如下:
步骤三:测试
重新部署项目并启动tomcat,在浏览器中输入地址:http://localhost:8888/StrutsDay01/
效果如下图所示:
在文本框中输入内容,点击提交,此时表单数据提交给了HelloAction,HelloAction接受到了表单数据后,跳转到了hello.jsp,我们在hello.jsp上使用EL表达式来输出HelloAction的属性值,效果如下图:
小结:
1.Action中追加属性时,不必区别何时加get方法,可是加set方法,通常每个属性都有get和set方法。
2.页面上写EL表达式,实际上与两种注入方式中,对应的表单文本框name表达式写法一致。
使用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方法,不需要再追加。代码如下:
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的属性值,代码如下:
<%@ 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表达式写法一致。
相关文章推荐
- java绑定
- Eclipse注释模板设置详解
- myeclipse10 vss
- Eclipse快捷键 之 代码追踪
- java保留2位小数
- java 复选框的取值与验证(checkbox)
- java IO简介及演变的历史
- spring aop 切入点
- Spring中Quartz的配置
- Java - List遍历、判断、删除元素时的陷阱
- java File类与FilenameFilter类的学习
- java JDBC应用(一)——PraparedStatement对象
- Java线程池学习笔记二
- struts标签
- spring学习系列 -- 定时器一TimerTask
- maven修改项目JDK版本
- JSP——JavaBean
- 【JAVA】JAVA之HelloWorld
- Java基础——线程(二)
- 【翻译】《Java™ I/O, 2nd Edition》-14.1 使用缓冲区复制文件