Struts2,字符串空检查
我试图对字符串进行空检查,但它不起作用。
<s:iterator value="matrix" var="row">
<tr>
<s:iterator value="value" var="col">
<td>
<s:if test="%{#col==null}">0</s:if>
<s:else><s:property value="col"/></s:else>
</td>
</s:iterator>
</tr>
</s:iterator>
矩阵是一个
Map<Integer, List<String>>
var“col” 已正确分配列表中的字符串值。
该列表可能如下所示 [ "hello" , null , "world ]
当前输出:hello world
想要的输出: hello 0 world
/提前致谢
I'm trying to do a null check on a String but it won't work.
<s:iterator value="matrix" var="row">
<tr>
<s:iterator value="value" var="col">
<td>
<s:if test="%{#col==null}">0</s:if>
<s:else><s:property value="col"/></s:else>
</td>
</s:iterator>
</tr>
</s:iterator>
matrix is a
Map<Integer, List<String>>
The var "col" is correctly assigned a String value from the List.
The list may look like this [ "hello" , null , "world ]
Current output: hello world
Wanted output: hello 0 world
/Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
尝试不带#。
我认为 has 将首先尝试解析“col”,并使用 col 的值作为属性名称。因为它是空的,所以它会比较“”作为属性名称,这是值堆栈的顶部。我不确定这里会如何评价。
我总是使用这样的东西:
Try it without the #.
I think the has will attempt to resolve 'col' first, and use the value of col as the property name. Since that'd be empty, it'd do a comparison of "" as the property name, which is the top of the value stack. I'm not sure how that would evaluate here.
I always use something like this:
这取决于您使用的是 Struts2.0.x 还是更高版本,因为
id
属性已 自 Struts2.1.x 起替换了s:iterator
中的var
属性。假设 Struts 2.1.x,最好的方法是分配
var
属性并将其用作变量(正如您已经建议的那样)您可能还想使用
top
变量来获取顶部堆栈值,但它可能与您的对象属性相冲突。仍然有效但是,如果您只需要打印 String 的结果,没有任何条件,无论它是
null
还是 empty,只需像这个Ps 一样简单即可。没有必要在
s:if
的test
属性内使用 ognl 标记%{}
,或者s:property
的value
属性。有关更多示例,请查看 struts2 迭代器文档
It depends whether you're using Struts2.0.x or a higher version, as
id
attribute has been replaced forvar
attribute ins:iterator
since Struts2.1.x.Asuming Struts 2.1.x, the best way is to assign
var
attribute and use it as a variable (as you already suggested)You may also want to use
top
variable to get top stack value, but it may enter in conflict with your objects attributes. Still it worksBut, if you only need to print String's result, with no conditions, whether it is
null
or empty, just do it as simple as thisPs. It's not necessary to use ognl markup
%{}
inside thetest
attribute of as:if
, or thevalue
attribute of as:property
.For more examples check struts2 iterator doc
我已经解决了我的问题。
字符串数组中的值不是 null,而是一个空字符串。
I have solved my problem.
The value in the string array wasn't null but an empty String.
您可以在一行中完成(单个 if 语句):
或添加更多字符串
You can do it in one line ( single if statement):
Or add more string
用于在 Struts2 的迭代器内执行此操作;在“测试子句”内,使用“#”引用上下文变量。
For doing it inside iterator in Struts2; inside 'Test Clause', use '#' to refer to the context variable.