日期:2014-05-16  浏览次数:20452 次

Jsp脚本和struts2之间传值

    一、jsp向其对应的Action传值

      只要其指明的Action中有相应的getter和setter函数就可以,

     如:在jsp中,有一个变量为name,如果想在能够响应的Action中获得这个变量,直接有public string getName()和public void setName(String name);就行了。

 在Action类中,把Name作为成员变量并不是必须的,可以要,也可以不要,但是一定要有getter和setter函数,这是获得值的保证。

  

二、jsp脚本中获得Action的值

    1.通过struts标签获得值

     当然这个很简单,直接可以在网页给输出来。

    <s:property value="name">

   但是如果把这个name变量赋值给jsp脚本中的变量呢?

  2.通过ValueStack

  工作原理:当访问一个action的时候,此时struts2会把整个action压入valuestack的顶部,此时valuestack就一个action对象  

   具体使用:1.<%@ page import="com.opensymphony.xwork2.util.*"%> 

                     2.获得ValueStack对象:ValueStack vs = (ValueStack) request.getAttribute("struts.valueStack"); 

                     3.譬如获得:String name=vs.findString("name");