`
龙塘湾
  • 浏览: 135751 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

jsp页面与action的值传递

阅读更多

原理: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把值压入值栈,要用值时从值栈中取
分享到:
评论

相关推荐

    页面往action传中文参数,如何不变成乱码

    属于一篇的博文的资源文件,请配合博文食用。一个很简单的小demo

    在一个ssh框架的项目当中,页面、action、service、model、dao1

    jsp传参数给action action调用service service调用dao 他们相互调用的时候传递的参数就是modelStruts负责前台与后台之间数

    java简单上传,Struts1下实现

    简单的java上传,包括JSP页面代码,Action,js等

    谈谈你对Struts的理解。

    1. struts是一个按MVC模式设计的Web层框架,其实它就是一个大大的servlet,这个Servlet名为ActionServlet,或是ActionServlet的子类。我们可以在web.xml文件...这样可以实现action程序代码与返回的jsp页面名称的解耦。

    自己实现的struts1简易框架

    1.能够通过配置定义Action,能够把客户端的参数传递给Action并从Action中取出结果值。 2.JSP页面能获取Action中的结果值。 3.能够实现拦截器。 4.支持文件上传下载

    从J2SE到J2EE知识点介绍

    5. JSP页面通过URL传递中文参数的乱码问题 139 四、 Struts2 140 (一) 基于struts2的web应用的开发步骤 140 1. MVC设计模式() 140 2. 基于struts的web应用的开发步骤 141 3. 如何写自定义action,实体,以及业务类...

    pager-taglib-2.0完整源码和Struts演示示例工程

    打开方法: http://localhost:8080/pagertaglib/pageAction.do?pager.offset=0&lt;br&gt;pager-demo.jsp是原标签自带示例索引: http://localhost:8080/pagertaglib/pager-demo.jsp&lt;br&gt;test1.jsp是一个页面直接读取...

    Struts2 in action中文版

    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 ...

    structs程序设计从入门到精通word文档

    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 如何获得...

    实验二 基于struts框架搭建网站架构

    1. 采用Struts框架设计图书管理系统的用户...页面中用户名和密码正确转到success.jsp页面,有误转到error.jsp页面或login.jsp页面。... 2. 实现Struts2的三种传值方式,在登录页面中将页面的用户属性信息传递到Action中。

    struts2传参

    struts2中使用ognl表达式语言传参的方法,简化操作,通过jsp页面传递到Action中

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    2.8.3 在JSP页面中使用Include指令后,JSP不能编译 2.9 精彩回顾 第3章前人栽树后人乘凉 ——、JSP内置对象 3.1 本章学习任务 3.1.1 本章知识体系 3.1.2 实例开发任务 3.2 简化开发JSP内置对象概述 3.2.1 为什么...

    java 经典面试题 于网络分享

    B 在FormBean中可以对页面上传递来的参数进行一下格式上的验证,这种验证是一种客户端的验证 C 用户每次提交表单,都会产生一个新的FormBean实例 D 动态FormBean不能进行验证操作 答案:A 8.以下哪些不是...

    达内培训项目之模拟当当网上商店

    在Struts框架中,JSP结合JSTL和EL标签用于前端展现,Servlet 用于控制,Action 用于处理前端页面JSP发来的请求,请求参数通过ActionForm进行传递,Action 在获得请求后将处理结果转发到相应的JSP进行展现。使用...

    java面试题

    引用传递和值传递? 答:引用传递:形参改变影响实参 值传递:形参改变不影响实参 当一个线程进入一个对象的synchronized方法后,其他线程是否可进入此对象的其他方法? 答:其他方法前是否加了synchronized关键字...

    模拟购物网站

    在Struts框架中,JSP用于前端展现,Servlet 用于控制,Ajax实现异步刷新,Action 用于处理前端页面JSP发来的请求,请求参数通过ActionForm进行传递,Action 在获得请求后通过调度业务系统进行做处理,最后将处理结果...

    毕业论文,网上购物

    在Struts框架中,JSP用于前端展现,Servlet 用于控制,Ajax实现异步刷新,Action 用于处理前端页面JSP发来的请求,请求参数通过ActionForm进行传递,Action 在获得请求后通过调度业务系统进行做处理,最后将处理结果...

    Struts2注解+JDBC+MySQL小项目应用

    // 对用户的输入格式进行验证//应定义在jsp页面javScript if ("".equals(userName) || userName == null) { resultMsg = "用户名不能为空"; return "checkFailure"; } else if ("".equals(passWord) || ...

    java编码的网上购物系统

    在Struts框架中,JSP用于前端展现,Servlet 用于控制,Action 用于处理前端页面JSP发来的请求,请求参数通过ActionForm进行传递,Action 在获得请求后通过调度业务系统提供的Spring service bean做处理,最后将处理结果...

    java开发的网上购物系统

    在Struts框架中,JSP用于前端展现,Servlet 用于控制,Action 用于处理前端页面JSP发来的请求,请求参数通过ActionForm进行传递,Action 在获得请求后通过调度业务系统提供的Spring service bean做处理,最后将处理结果...

Global site tag (gtag.js) - Google Analytics