Java Struts逻辑问题
为什么下面的代码不起作用?其思想是,页面检查下拉变量自上次刷新页面以来是否有更改Java Struts逻辑问题,java,struts,tags,logic,Java,Struts,Tags,Logic,为什么下面的代码不起作用?其思想是,页面检查下拉变量自上次刷新页面以来是否有更改 <logic:equal name="Result" value = "-1"> <bean:define id="JOININGDATE" name="smlMoverDetailForm" property="empFDJoiningDate" type="java.lang.String" toScope = "session" /> </logic:
<logic:equal name="Result" value = "-1">
<bean:define id="JOININGDATE" name="smlMoverDetailForm" property="empFDJoiningDate"
type="java.lang.String" toScope = "session" />
</logic:equal>
<logic:equal name="Result" value = "-1">
<bean:define id="DropDownValue" name="smlMoverDetailForm" property="moverChangeType"
type="java.lang.String" toScope = "session" />
</logic:equal>
<-- when you fisrt access this page from the above are run -->
<bean:define id="NewDropDownValue" name="smlMoverDetailForm"
property="moverChangeType" type="java.lang.String" toScope = "sess
<-- this happens everytime the page is refreshed-->
<logic:equal name= DropDownValue value = NewDropDownValue>
<bean:define id="JOININGDATE" name="smlMoverDetailForm"
property="empFDJoiningDate" type="java.lang.String" toScope = "session" />
</logic:equal>
<logic:notEqual name="DropDownValue" value = "NewDropDownValue">
<bean:define id="DropDownValue" name="smlMoverDetailForm"
property="moverChangeType" type="java.lang.String" toScope = "session"
/>
</logic:notEqual>
我不确定这是否是您的问题(请描述它是如何工作的),但上面的xml无效:它需要在属性值周围加引号。
我不确定这是否是您的问题(请描述它是如何工作的),但上面的xml无效:它需要在属性值周围加引号。问题在于,正如您所描述的,我无法获取逻辑标记来评估定义bean中的值 问题在于,正如您所描述的,我无法获取逻辑标记来评估定义bean中的值 您已经意识到,您的bean:define(至少在您的问题中)存在缺陷
toScope="sess
很可能不是您想要的-它甚至不会终止标记。但这可能是StackOverflow中的格式设置。。。此外,其他答案中也提到了缺失的引语
错误可能是由于使用了value属性:根据value是将此标记的其他属性指定的变量与之进行比较的常量值
因此,假设您已经定义了一个名为NewDropDownValue的bean,那么您可能需要对其进行求值
<logic:equal name="DropDownValue" value="<%=NewDropDownValue/>">
编辑:此外,我记不起当您仅有条件地定义bean时会发生什么情况-您的bean是在逻辑:相等块中定义的,该逻辑块可能会被计算,也可能不会被计算。它可能是合法的,并且已经定义了结果,我只是不记得…您已经意识到,您的bean:define(至少在您这里提到的问题中)是有缺陷的
toScope="sess
很可能不是您想要的-它甚至不会终止标记。但这可能是StackOverflow中的格式设置。。。此外,其他答案中也提到了缺失的引语
错误可能是由于使用了value属性:根据value是将此标记的其他属性指定的变量与之进行比较的常量值
因此,假设您已经定义了一个名为NewDropDownValue的bean,那么您可能需要对其进行求值
<logic:equal name="DropDownValue" value="<%=NewDropDownValue/>">
编辑:此外,我记不起当您仅有条件地定义bean时会发生什么情况-您的bean是在逻辑:相等块中定义的,该逻辑块可能会被计算,也可能不会被计算。它可能是合法的,并且已经定义了结果,我只是不记得…事实上,我并没有真正得到你想要的,但是这里有一些伪代码(删除那些危险的尖括号)在你的代码中
if result == -1
define JOININGDATE
end
if result == -1
define DropDownValue
end
这可能是一个错误(您可能希望检查一次“等于”和一次“不等于”),或者写得更短更清晰
if result == -1
define JOININGDATE
define DropDownValue
end
// otherwise don't define both values
如果您将一些输出放在这些逻辑标记中,并发布输出和更多的上下文(例如,实际参数值--“结果”是什么),您的问题可能会得到更好的答案(或者由您自己回答)。但是,然后-你从一个未注册的帐户发布,并且有一段时间没有被看到…事实上,我并没有真正得到你想要的,但是这里有一些伪代码(删除那些危险的尖括号)在你的代码中
if result == -1
define JOININGDATE
end
if result == -1
define DropDownValue
end
这可能是一个错误(您可能希望检查一次“等于”和一次“不等于”),或者写得更短更清晰
if result == -1
define JOININGDATE
define DropDownValue
end
// otherwise don't define both values
如果您将一些输出放在这些逻辑标记中,并发布输出和更多的上下文(例如,实际参数值--“结果”是什么),您的问题可能会得到更好的答案(或者由您自己回答)。但是-您是从一个未注册的帐户发布的,并且已经有一段时间没有被看到了…请尝试以下操作:
<logic:equal name="Result" value = "-1">
<bean:define id="JOININGDATE" name="smlMoverDetailForm" property="empFDJoiningDate"
type="java.lang.String" toScope = "session" />
</logic:equal>
<logic:equal name="Result" value = "-1">
<bean:define id="DropDownValue" name="smlMoverDetailForm" property="moverChangeType"
type="java.lang.String" toScope = "session" />
</logic:equal>
<!-- when you fisrt access this page from the above are run -->
<bean:define id="NewDropDownValue" name="smlMoverDetailForm"
property="moverChangeType" type="java.lang.String" toScope = "session"/>
<!-- this happens everytime the page is refreshed-->
<logic:equal name="DropDownValue" value="<%=request.getSession().getAttribute("NewDropDownValue").toString()%>">
<bean:define id="JOININGDATE" name="smlMoverDetailForm"
property="empFDJoiningDate" type="java.lang.String" toScope ="session" />
</logic:equal>
<logic:notEqual name="DropDownValue" value="NewDropDownValue">
<bean:define id="DropDownValue" name="smlMoverDetailForm"
property="moverChangeType" type="java.lang.String" toScope = "session"/>
</logic:notEqual>
更正错误:
- 评论的形式不好
- 第三次没有正确结束
- 更改获取NewDropDownValue的方式
我认为这些更改将使其正确运行。尝试以下操作:
<logic:equal name="Result" value = "-1">
<bean:define id="JOININGDATE" name="smlMoverDetailForm" property="empFDJoiningDate"
type="java.lang.String" toScope = "session" />
</logic:equal>
<logic:equal name="Result" value = "-1">
<bean:define id="DropDownValue" name="smlMoverDetailForm" property="moverChangeType"
type="java.lang.String" toScope = "session" />
</logic:equal>
<!-- when you fisrt access this page from the above are run -->
<bean:define id="NewDropDownValue" name="smlMoverDetailForm"
property="moverChangeType" type="java.lang.String" toScope = "session"/>
<!-- this happens everytime the page is refreshed-->
<logic:equal name="DropDownValue" value="<%=request.getSession().getAttribute("NewDropDownValue").toString()%>">
<bean:define id="JOININGDATE" name="smlMoverDetailForm"
property="empFDJoiningDate" type="java.lang.String" toScope ="session" />
</logic:equal>
<logic:notEqual name="DropDownValue" value="NewDropDownValue">
<bean:define id="DropDownValue" name="smlMoverDetailForm"
property="moverChangeType" type="java.lang.String" toScope = "session"/>
</logic:notEqual>
更正错误:
- 评论的形式不好
- 第三次没有正确结束
- 更改获取NewDropDownValue的方式
我认为这些更改将使其正确运行。我已尝试重新添加引号,但仍然不起作用。我得到一个jsp conpile错误:moverDetailC.jsp(192,39)equal symbol expected'第192行是任何helod,我非常感激我已经尝试添加引号,但仍然不起作用。我得到一个jsp conpile错误:moverDetailC.jsp(192,39)equal symbol expected'第192行是任何helod都非常感谢的