非常快速的问题。 有人可以向我解释为什么这段代码不起作用?
<%@ taglib prefix="logic" uri="/WEB-INF/struts-logic.tld" %>
<%
int myValue= 2;
%>
myValue: <%=myValue%>
<br/>
<logic:equal name="myValue" value="2" scope="session">
logic:equal works!
</logic:equal>
即使我将myValue更改为String仍然无法正常工作
非常令人沮丧,因为我知道它会显而易见。
提前致谢
KS
工作示例!
<%@ taglib prefix="logic" uri="/WEB-INF/struts-logic.tld" %>
<%
request.setAttribute("myValue", 2);
%>
myValue - <%=request.getAttribute("myValue")%>]]
<br/>
<logic:equal name="myValue" value="2" scope="request">
logic:equal works!
</logic:equal>
答案 0 :(得分:2)
<logic:equal name="myValue" value="2" scope="session">
此标记查找名为&#34; myValue&#34;的会话属性。不适用于名为&#34; myValue&#34;。
的局部变量真正的问题是:为什么你使用的标记库被标记为不赞成使用JSTL,这个库是正式放弃的框架的一部分?
答案 1 :(得分:0)
任何范围都无法访问Scriptlet变量。您只能将它们与scriptlet表达式一起使用。
在Struts中可以使用JSTL和Struts标签
<c:set var="myValue" value="2"/>
<c:if test="${myValue == 2}">
if test works!
</c:if>