Struts 2 中 Struts 1 逻辑:空标签的等价物是什么?

发布于 2024-10-10 08:15:05 字数 165 浏览 3 评论 0原文

Struts 2 相当于 Struts 1 的逻辑:空标签是什么?

<logic:empty name="foo">
   Foo is null or the empty string
</logic:empty>

谢谢。

What's the Strut's 2 equivalent of the Struts 1 logic:empty tag?

<logic:empty name="foo">
   Foo is null or the empty string
</logic:empty>

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

赤濁 2024-10-17 08:15:06

没有 struts2 标签可以做到这一点,OGNL 比 struts1 标签有更多的可能性和更多的表现力,但是似乎没有一种方法可以简洁地检查字符串是否为 null 和空字符串。

工作原理如下:

<s:if test="(myString == null || myString.equals(''))">
  myString is blank or null
</s:if>
<s:else>
  The value is <s:property value="myString"/>
</s:else>

该测试依赖于短路,因此 null 测试不能与相等测试一起更改。

如果经常需要对此进行测试,则可能存在设计问题。通过适当的验证,您不应该拥有视图所依赖的未初始化对象,但我认为总是有例外。

There is no struts2 tag to do this, there are more possibilities and more expressiveness with OGNL than the struts1 tags, however there does not seem to be a way to check a string for both null and the empty string as succinctly.

The following works:

<s:if test="(myString == null || myString.equals(''))">
  myString is blank or null
</s:if>
<s:else>
  The value is <s:property value="myString"/>
</s:else>

The test relies on short circuting, so test of null can not be changed with the test for equality.

If the need to test for this comes up often there may be a design issue. With proper validation in place you should not have uninitialized objects for which the view depends but I suppose there are always exceptions.

慵挽 2024-10-17 08:15:06

要添加到四元数的答案中:

  1. 您始终可以在操作中添加一个方法来检查特定条件,例如 MyAction.isPropertyXEmpty() 并将其放在 condition

  2. 回想一下,Struts2 中的属性比 Struts 中的类型更丰富/更具表现力。如果其他类型更合适,请不要使用字符串。并且您可以将它们初始化为非空值(例如,空字符串)以避免空问题。

To add to Quaternion's answer:

  1. You can always add a method in your action for checking particular conditions, eg MyAction.isPropertyXEmpty() an put it in the <if test=...> condition

  2. Recall that in Struts2 properties are more type-rich/expressive than in Struts. Don't use Strings if another type is more appropiate. And you can initialize them to non-null values (eg., empty strings) to avoid the null problems.

空名 2024-10-17 08:15:06

要扩展史蒂文的评论,您可以导入

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

然后使用:

<c:if test="${empty myStruts2Var}">

<c:if test="${not empty myStruts2Var}">

To expand on Steven's comment, you can import with

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

then use:

<c:if test="${empty myStruts2Var}">

or

<c:if test="${not empty myStruts2Var}">
年华零落成诗 2024-10-17 08:15:06

对于字符串,我会使用:

<s:if test="myString in {null, ''}">

对于集合,我会使用:

<s:if test="null == myCollection || myCollection.empty">

希望这有利于可读性。

For strings, I would use:

<s:if test="myString in {null, ''}">

For collections, I would use:

<s:if test="null == myCollection || myCollection.empty">

Hope this is beneficial for readability.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文