有以下片段:
<td>
<s:set name="actorRef" value="actorId" />
<s:set name="taskName" value="name" />
<s:if test="#actorRef=='' or #actorRef==null">共享任务(<a
href="${pageContext.request.contextPath}/ga/changeTaskAssigment.action?taskInstanceId=<s:property value="id"/>" >我来处理</a>)</s:if>
<s:elseif test='{#taskName == "受评对象准备评级资料"}'>
<a href="${pageContext.request.contextPath}/ga/needModify.action?taskInstanceId=<s:property value="id"/>">准备资料</a>
</s:elseif>
<s:else>
<s:property value="#taskName" />
</s:else>
</td>
其中 <s:elseif test='{#taskName == "受评对象准备评级资料"}'>为正确答案,但是如果
<s:if test="#taskName == '受评对象准备评级资料'">就不行,还有我试了
<s:property value="#taskName" />这个可以输出正确的值
原因总结可能是用property时候可以取出正确的值,但是在 test中就取不出值,这个要看源代码来确认。
可以参考http://www.blogjava.net/max/category/16130.html
如果换成 <s:elseif test="#taskName.equals('受评对象准备评级资料')">
这个也不行,(代码已测试)http://topic.csdn.net/u/20080328/11/43b8f534-d0cb-47c8-bb4d-383f7ebf972f.html
重大发现:上面的语句也是不对的,他只要第一个条件非空就进入第一<s:elseif test='{#taskName == "受评对象准备评级资料"}'> 正确的是:<s:elseif test='%{#taskName == "提交评委会资料"}'>
分享到:
相关推荐
### Struts2 `<s:if>` 标签使用详解 #### 概述 Struts2 是一款基于 Java 的企业级 Web 应用框架,它利用了 MVC(Model-View-Controller)架构模式来帮助开发者构建可扩展、易于维护的 Web 应用程序。在 Struts2 中...
本篇文章将深入解析这段代码所涉及的关键知识点,并通过实际案例帮助理解如何使用Struts2中的`<s:if>`标签进行逻辑控制。 ### Struts2概述 Struts2是基于MVC设计模式的Web应用开发框架,它提供了丰富的标签库以及...
在Struts2框架中,`<s:if>`标签被广泛应用于页面上根据不同的条件显示或隐藏某些元素。它的工作原理是基于表达式的结果来决定是否渲染其内部的HTML代码。当涉及到对String类型的对象属性值与单个字符进行比较时,...
此外,Struts2还提供了`<s:if>`和`<s:else>`的嵌套使用,可以实现更复杂的条件判断逻辑。同时,可以使用`<s:choose>`, `<s:when>`, 和 `<s:otherwise>`标签来创建类似于switch-case的结构: ```jsp <s:choose> <s:...
- `<s:if>`、`<s:elseif>` 和 `<s:else>` 标签用于实现条件判断逻辑。 - 示例: ```xml <s:if test="%{testBoolean}"> <p>这是显示的内容</p> </s:if> <s:elseif test="%{testBoolean == false}"> <p>这是另...
例如:<s:append id="myAppendIterator"> <s:param value="%{myList1}" /> <s:param value="%{myList2}" /> <s:param value="%{myList3}" /></s:append><s:iterator value="%{#myAppendIterator}"> <s:property /></...
要在JSP页面中使用Struts2的S标签,首先需要在页面顶部添加如下声明: ```jsp <%@ taglib prefix="s" uri="/struts-tags" %> ``` 这行代码的作用是将Struts2提供的标签库导入到当前JSP页面中,并指定前缀为“s”。...
<%@ taglib prefix="s" uri="/struts-tags" %> 就能使用struts2.0的标签库 下面就介绍每个标签的具体应用实例说明:按字母排列 A: 1. 2. <s:a href=""></s:a>-----超链接,类似于html里的<a></a> 3. <s:...
以上只是Struts2标签库的一部分,实际使用中还有更多标签如`<s:textfield>`(文本输入框)、`<s:textarea>`(文本区域)、`<s:submit>`(提交按钮)等,每个都有其特定的用途,极大地简化了JSP页面的编写。...
<%@ taglib uri="/struts-tags" prefix="s" %> 结合例子,重点掌握以下标签的用法 (1) <s:property> (2) <s:set> (3) <s:if> 、<s:elseif>、<s:else> (4) <s:iterator> (5) <s:include> (6) <s:form>、<s:hidden> (7...
而在 Struts2 中,所有的标签都被统一管理,并通过在 JSP 文件头部声明 `<%@ taglib prefix="s" uri="/struts-tags" %>` 来启用 Struts2 的标签库。这种方式简化了开发过程中的配置工作,使得开发者可以更加专注于...
通过以上分析可知,利用Struts2的`<s:iterator>`和`<s:set>`标签,我们可以很方便地实现对列表数据的迭代显示及数值求和功能。这种方法不仅简化了后端代码逻辑,也使得前端页面更加灵活和动态。这对于处理大量数据时...
除了迭代输出,Struts2还提供了一些辅助标签处理集合数据,如`<s:if>`、`<s:else>`、`<s:foreach>`等。例如,检查集合是否为空: ```jsp <s:if test="#users.isEmpty()"> 没有用户数据 </s:if> <s:else> 用户数据...
* <s:generator>:和 <s:iterator> 标签一起使用 H: * <s:head>:在 <head></head> 里使用,表示头文件结束 * <s:hidden>:隐藏值 I: * <s:i18n>:加载资源包到值堆栈 * <s:include>:包含一个输出,servlet ...
`<s:elseif>` 条件判断标签 - **用途**:与`s:if`配合使用,进行多条件判断。 - **示例代码**: ```xml <s:if test="%{#age > 18}"> 成年人 </s:if> <s:elseif test="%{#age <= 18}"> 未成年人 </s:elseif> ...
这个例子展示了如何使用Struts2的`<s:form>`、`<s:textfield>`、`<s:password>`、`<s:email>`和`<s:fielderror>`标签创建一个包含用户输入验证的注册表单。 五、源码与工具 理解Struts2标签的实现原理,可以查看其...
与Struts1相比,Struts2的`<s:a>`标签支持更多的参数设置,如可以设置href、params等属性,使得链接的生成更加灵活。 - **`<s:action>`**:用于执行Action,类似于Struts1中的`<s:send>`标签。但Struts2的`<s:...
在JSP中,我们通常使用`<%@ taglib prefix="s" uri="/struts-tags" %>`来引入Struts2的标签库。下面将详细介绍一些重要的Struts2标签及其功能。 **A. 超链接和Action标签** - `<s:a href=""></s:a>`:创建一个...