Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 如何从struts2中的hashmap中获取值,并在<;s:如果测试>;?_Jsp_Struts2_Ognl - Fatal编程技术网

Jsp 如何从struts2中的hashmap中获取值,并在<;s:如果测试>;?

Jsp 如何从struts2中的hashmap中获取值,并在<;s:如果测试>;?,jsp,struts2,ognl,Jsp,Struts2,Ognl,我有一个名为param(String,String)的hashmap-in-Action类,其中一个(key,value)对是 USE=>1 or USE=>0 我想在jsp中检查它,使用“USE”的值是“1”还是“0”?我在hashmap的action类中有一个合适的getter。我还在HTML文本字段中验证了键“USE”的值是否正确 我试过了 <s:iterator var="map" value="param" > <s:if test="%{#m

我有一个名为param(String,String)的hashmap-in-Action类,其中一个(key,value)对是

USE=>1  or USE=>0 
我想在jsp中检查它,使用“USE”的值是“1”还是“0”?我在hashmap的action类中有一个合适的getter。我还在HTML文本字段中验证了键“USE”的值是否正确

我试过了

<s:iterator  var="map" value="param" >
  <s:if test="%{#map['USE'].equals(\"1\")}">
    <s:checkbox  label="Use" name="use" fieldValue="true" value="true"labelposition="left"/>
  </s:if>
</s:iterator>
<s:else>
  <s:checkbox  label="Use" name="useMta" fieldValue="false" value="false" labelposition="left"/>
</s:else>

但它不起作用?任何想法都会对我有帮助。


<s:iterator  var="map" value="param" >
  <s:if test="%{#map['USE']=='1'}">
    <s:checkbox  label="Use" name="use" fieldValue="true" value="true"labelposition="left"/>
  </s:if>
</s:iterator>
<s:else>
  <s:checkbox  label="Use" name="useMta" fieldValue="false" value="false" labelposition="left"/>
</s:else>

您可以在Java字符串中转义双引号,但是
equals
方法的参数应该是Java对象。您案例中的字符串对象将是

s:if test="%{#map['USE'].equals('\"1\"')}">

请注意,OGNL使用单配额或双配额来分隔OGNL常量中的字符串文字。

您不需要遍历映射来从中获取值。现在执行此操作时,
#map
变量的类型不是
map
,而是
map$Entry

因此,删除
标记,只使用
-
标记



BTW将你的动作字段命名为<代码> PARAM < /C>可能不是最好的主意,考虑把它改为更少的关键字ISH。< /P>使用适当的缩进表示可能的问题。