在一个jsp页面中要获取action里面的值,例如action里面有一个int a=3,getter和setter方法都写好了,
我在jsp页面中嵌入一段java代码<% int b=(.....);%>,请问(...)里面的代码要如何写才能获取到action里面的a值啊?
有试过用request,不过得到的是null,我们老师要求用struts标签,请问具体要怎么做啊?急!!!哪位可以帮助下,谢谢了!

解决方案 »

  1.   

    用request,怎么会是null呢? 
    action中,往request里边存放a,
    jsp中从request中取出来。个人不怎么喜欢用struts标签,用EL表达式和JSTL标签还是挺舒服的。
      

  2.   

    存进request,或者s2的session,然后用ognl语言直接调出来就行了,标签的话可以用s:property
      

  3.   

    不好意思,看错了,你既然用标签的话,就别用嵌入java代码的形式了,有点不伦不类
      

  4.   

    为什么会用到这种方法, 
    将a显示到HTML页面的方法是:${a}至于你说的那种,你可以查看相应JSP页面对应生成的java文件。import org.apache.jasper.runtime.PageContextImpl;
    int b = PageContextImpl.proprietaryEvaluate("${a}", java.lang.Integer.class, (PageContext)_jspx_page_context, null, false) 
      

  5.   

    action里面要怎么存放a啊?action里面不是已经有getter方法了吗?jsp里的request为什么不能直接获取到action的值,我struts.xml文件里有配置好的,action success的返回值是jsp页面,method也没问题。
      

  6.   

    我不是想在jsp页面将它显示出来,我是想把他的值拿出来,进行程序的循环控制或者赋值什么的,例如说我在jsp页面想用<%for(int i=0;i<?;i++){System.out.println("<h1>aaa</h1>");}%> ?就是我放在action里面的a值,那我该怎么弄,如果这样不好的话,类似于这种要直接引用变量值的要怎么弄?
      

  7.   

    不是很清楚ognl语言,可以麻烦说清楚下具体怎么使用吗?
      

  8.   

    <s:set 可以赋值
    <s:bean 可以新建一个bean
    <s:iterator 可以做循环
    比如使用 
    <s:bean name="org.apache.struts2.util.Counter" id="counter">
    <s:param name="first" value="1"/>
    <s:param name="last" value="10"/>
    </s:bean>
    <s:iterator value="#counter">
    <s:property/>
    </s:iterator>
    可以循环
      

  9.   

    多了!!
    <s:property value="a" /> 或者${a}用EL表达式或者OGNL都可以!!
      

  10.   

    在struts中定义的属性都是放在值栈中的,也就是request中,所以你可以直接用ognl表达式,直接取变量的值就ok的,不用写request,在页面用标签的话,直接<s:property value="${a}"/>就OK了,如果不行的话,应该就是你哪里配置没有写对了。