test.jsp的:
%%%%%%%%%%%%%
< s:property value="#parameters.type"/>
< s:if test="#parameters.type == 1">
< select>
< option value="-1">
请选择
< /option>
< option value="1" selected>
收件箱
< /option>
< option value="2">
发件箱
< /option>
< /select>
< /s:if>
%%%%%%%%%%%%%%
当test.jsp?type = 1访问此页面时 s:如果test为false,则不显示选择列表。 有人可以告诉我为什么吗?谢谢!
答案 0 :(得分:2)
我希望你明白你的代码不是很好的struts2练习。这不是Struts2应该正常使用的方式。您的http参数通常应该映射到您的操作字段,并且(在您的操作完成其工作之后)您的jsp应该显示从同一操作中拉出它们的结果。一般。通常,您不需要在jsp中访问http参数,也不需要执行任何逻辑(除了非常简单的逻辑)。
无论如何,测试中的问题可能是#parameters.type
是原始字符串,并且您将它与数字进行比较。 (这是违反正常Struts2流程的众多问题之一 - 从普通字符串到更有意义的类型的转换通常在该映射中由param拦截器完成。问题不会出现,你有一个正确的整数'type'字段在你的行动中,在你的jsp中,你要求它吗?你试过#parameters.type == '1'
吗?
答案 1 :(得分:0)
我已经解决了这个问题。只需用“#parameters.type [0]”替换“#parameters.type”即可。 然后测试工作!
这是因为struts2将参数表格URL视为一个数组。