Java 带动态参数的Struts嵌套标记
我有一个使用嵌套标记的传统Struts 1应用程序。我可以在嵌套标记中插入动态参数吗?比如说,Java 带动态参数的Struts嵌套标记,java,jsp,struts,struts-1,Java,Jsp,Struts,Struts 1,我有一个使用嵌套标记的传统Struts 1应用程序。我可以在嵌套标记中插入动态参数吗?比如说, <nested:select disabled="<c:out value='${requestScope.disableSelectBox}' />" /> 我还试着做: <nested:select disabled="${requestScope.disableSelectBox}" /> 在上述两个示例中,禁用属性未正确设置,因此被忽略。如果我用
<nested:select disabled="<c:out value='${requestScope.disableSelectBox}' />" />
我还试着做:
<nested:select disabled="${requestScope.disableSelectBox}" />
在上述两个示例中,禁用属性未正确设置,因此被忽略。如果我用c:out打印出值,则会显示disableSelectBox的正确值:
<c:out value="${requestScope.disableSelectBox}" />
一位同事建议我使用:
<nested:select disabled="<%=request.getAttribute("disableSelectBox"); %>" />
问题在于,在JSP页面中使用java scriplets被认为是不好的做法。有没有办法将动态变量嵌入Struts 1嵌套标记中?切换到Struts 2不是一个选项
谢谢 Struts 1(据我记忆所及)不允许您执行以下操作:
<nested:select disabled="<c:out value='${requestScope.disableSelectBox}' />" />
及
将呈现为(如果结果返回true)
在发送给Struts以呈现嵌套标记之前(很抱歉使用了“render”一词,如果您愿意,可以使用translate)。我不使用Struts,所以我可能是错的,但是如果scriptlet解决方案有效,那么如果您至少使用了JSP 2.0,那么选项2在理论上也应该有效(即web.xml声明至少符合Servlet版本2.4,并且您正在Servlet 2.4兼容服务器上运行webapp)。
<nested:select disabled="${requestScope.disableSelectBox}" />
<nested:select disabled="<%=request.getAttribute("disableSelectBox"); %>" />
<nested:select disabled="true" />