我想把以前的代码改成struts2标签库的
<%
    String pr = "tom";
%>
<input type="hidden" name="pr" value="<%=pr%>">我想改成struts标签库<s:hidden name="pr" value=" "></s:hidden>
请问value内如何写?

解决方案 »

  1.   

    自己定义的tag嵌入<%=pr%>是可以的,struts2不知为何不可以。
    下面是解决办法,改tag的tld配置文件:
    http://www.javaeye.com/problems/1461
      

  2.   

    <s:set name="pr" value="tom"/> 
    <s:hidden name="pr" value="%{pr}"/>
      

  3.   

    楼上兄弟的办法好像对我不适用,如果我的变量是通过类方法得到的怎么办呀
    <% 
        TestDo td = new TestDo();
        String pr = td.select();
    %> 
    <input type="hidden" name="pr" value=" <%=pr%>"> 
      

  4.   

    楼主已经修改了tld配置文件了吗?
      

  5.   

    怎么修改tld呀,他不是在struts2的jar包里吗
      

  6.   

    打开项目中引用的包“struts2-core-x-x-x.jar”(x为版本号)找到里面的META-INF文件夹,有个struts-tags.tld,打开后应该不用翻页,即可找到一行:
    <rtexprvalue>false</rtexprvalue>
    改成true。  
      

  7.   

    怎么不可以?
    如果觉得不合适,那就不用他的tag,用传统的html的hidden。
    不理解为何他的标签不支持动态赋值(<%=value%>、${value})
      

  8.   

    首先你要确保 你的 action 里面 有 String pr 这个属性 或者 appcontext里面有属性 
    并且传递到jsp时候 里面有值 action 里面的
    <s:hidden name="pr" value="%{pr}"> </s:hidden> context里面的
    <s:hidden name="pr" value="%{#pr}"> </s:hidden> 
      

  9.   

    struts2
    Action里有String pr,然后写出setPr/getPr....要打开某jsp页面,一般都是执行**.action,让程序进入Action,然后转到你的jsp页面(Action里可以执行setPr(...)赋值)jsp页面里<s:hidden name="pr" />就可以了,如果你在Action里赋值了,这个隐藏域的value就是你赋的值,如果没赋值,那么value=""
      

  10.   

    把要传的参数放到相应的Action文件中,传到jsp页面,用struts2标签接不久可以了吗?Action文件
    public String execute(){
    ActionContext ctx=ActionContext.getContext();
    ctx.put(pr,"tom");
    jsp文件
    <s:hidden name="pr" value="#request.pr"/>