原理:action向jsp页面传递值时,如果在jsp页面中是使用struts2标签取值的话,那么参数值会自动调用action中的参数getxxxxx()方法,将值自动取出后传入jsp页面中。如果在jsp页面中是使用非struts2标签取值的话,那么将不会自动调用action中的参数getxxxxxx()方法,必须将参数放入session或request或applicaton中,然后再在jsp页面中取值。
具体取值方法如下:
<1>.EL表达式:如 ${requestScope.username}
<2>、java代码:<%request.getAttribute("username");%>
也有可能要使用<%request.getParameter("username");%>
<3>、使用ValueStack对象
<%
ValueStack vs = (ValueStack)request.getAttribute("struts.valueStack");
String username=(String)vs.findValue("username");
out.println(username);
%>
<4>、使用struts2自带的标签:
<s:property value="username"/>
注意:在从action向其他地方传值时,在struts.xml配置文件中,要把action的result标签里的type值设为dispatcher而不能使用redirect,否则传值不能成功。
1》redirect:action处理完后重定向到一个视图资源(如:jsp页面),请求参数全部丢失,action处理结果也全部丢失。 <result name="success" type="redirect">/displayCart.action?userId=${userId}</result>
2》redirect-action:action处理完后重定向到一个action,请求参数全部丢失,action处理结果也全部丢失。
重定向的调用者和被调用者使用各自的request and response对象,它们属于两个独立的访问请求和响应过程。
重定向需要两次请求能完成的工作,请求转发只要通过一次请求即可完成。这样一来我们也就明白了为什么请求不会造成数据丢失。
<result name="success" type="redirect-action">/displayCart?userId=${userId}</result>
3》chain:action处理完后转发到一个action,请求参数全部丢失,action处理结果不会丢失。
如:<action name="applyAccountAddAction" class="openAccountAction" method="addApplyAccount">
<result type="chain" name="success">
<param name="actionName">applyAccountIntoViewAction</param>
</result>
<result name="input">/page/account/open/openApplyAccountAdd.jsp</result>
</action>
chain拦截器,处于chain链中的所有action共享一下值栈,每个action把值压入值栈,要用值时从值栈中取
分享到:
相关推荐
属于一篇的博文的资源文件,请配合博文食用。一个很简单的小demo
jsp传参数给action action调用service service调用dao 他们相互调用的时候传递的参数就是modelStruts负责前台与后台之间数
简单的java上传,包括JSP页面代码,Action,js等
1. struts是一个按MVC模式设计的Web层框架,其实它就是一个大大的servlet,这个Servlet名为ActionServlet,或是ActionServlet的子类。我们可以在web.xml文件...这样可以实现action程序代码与返回的jsp页面名称的解耦。
1.能够通过配置定义Action,能够把客户端的参数传递给Action并从Action中取出结果值。 2.JSP页面能获取Action中的结果值。 3.能够实现拦截器。 4.支持文件上传下载
5. JSP页面通过URL传递中文参数的乱码问题 139 四、 Struts2 140 (一) 基于struts2的web应用的开发步骤 140 1. MVC设计模式() 140 2. 基于struts的web应用的开发步骤 141 3. 如何写自定义action,实体,以及业务类...
打开方法: http://localhost:8080/pagertaglib/pageAction.do?pager.offset=0<br>pager-demo.jsp是原标签自带示例索引: http://localhost:8080/pagertaglib/pager-demo.jsp<br>test1.jsp是一个页面直接读取...
3.4 向对象传递数据 51 3.4.1 对象支持的JavaBean属性 52 3.4.2 ModelDriven动作 54 3.4.3 域对象用作数据转移的潜在危险 55 3.5 案例研究:文件上传 56 3.5.1 通过struts-default包获得内建的支持 56 3.5.2 ...
12.1 Struts下JSP页面传递复选框值技巧 15 12.1 Struts中下拉和选取/选项列表的HTML标签 15 12.1 Struts中html:errors的HTML标签 15 12.1 Struts中使用标签上传文件 15 第13章 Struts Bean标签库 15 13.1 如何获得...
1. 采用Struts框架设计图书管理系统的用户...页面中用户名和密码正确转到success.jsp页面,有误转到error.jsp页面或login.jsp页面。... 2. 实现Struts2的三种传值方式,在登录页面中将页面的用户属性信息传递到Action中。
struts2中使用ognl表达式语言传参的方法,简化操作,通过jsp页面传递到Action中
2.8.3 在JSP页面中使用Include指令后,JSP不能编译 2.9 精彩回顾 第3章前人栽树后人乘凉 ——、JSP内置对象 3.1 本章学习任务 3.1.1 本章知识体系 3.1.2 实例开发任务 3.2 简化开发JSP内置对象概述 3.2.1 为什么...
B 在FormBean中可以对页面上传递来的参数进行一下格式上的验证,这种验证是一种客户端的验证 C 用户每次提交表单,都会产生一个新的FormBean实例 D 动态FormBean不能进行验证操作 答案:A 8.以下哪些不是...
在Struts框架中,JSP结合JSTL和EL标签用于前端展现,Servlet 用于控制,Action 用于处理前端页面JSP发来的请求,请求参数通过ActionForm进行传递,Action 在获得请求后将处理结果转发到相应的JSP进行展现。使用...
引用传递和值传递? 答:引用传递:形参改变影响实参 值传递:形参改变不影响实参 当一个线程进入一个对象的synchronized方法后,其他线程是否可进入此对象的其他方法? 答:其他方法前是否加了synchronized关键字...
在Struts框架中,JSP用于前端展现,Servlet 用于控制,Ajax实现异步刷新,Action 用于处理前端页面JSP发来的请求,请求参数通过ActionForm进行传递,Action 在获得请求后通过调度业务系统进行做处理,最后将处理结果...
在Struts框架中,JSP用于前端展现,Servlet 用于控制,Ajax实现异步刷新,Action 用于处理前端页面JSP发来的请求,请求参数通过ActionForm进行传递,Action 在获得请求后通过调度业务系统进行做处理,最后将处理结果...
// 对用户的输入格式进行验证//应定义在jsp页面javScript if ("".equals(userName) || userName == null) { resultMsg = "用户名不能为空"; return "checkFailure"; } else if ("".equals(passWord) || ...
在Struts框架中,JSP用于前端展现,Servlet 用于控制,Action 用于处理前端页面JSP发来的请求,请求参数通过ActionForm进行传递,Action 在获得请求后通过调度业务系统提供的Spring service bean做处理,最后将处理结果...
在Struts框架中,JSP用于前端展现,Servlet 用于控制,Action 用于处理前端页面JSP发来的请求,请求参数通过ActionForm进行传递,Action 在获得请求后通过调度业务系统提供的Spring service bean做处理,最后将处理结果...