Embed/nest自定义JSP标签设置另一个HTML标签的属性值
Embed/nest custom JSP tag to set the attribute value of another HTML tag
我是 Java 和 struts 的新手,我正在做一个项目,我需要从自定义标签中设置属性值,该标签检索 [=32] 的值=] 属性.
...
<cust:urlGeneration porlet="<cust:write property="tgtPortlet"/>">
<a href="<% wsp.write(out) %>"/>the link</a>
<cust:urlGeneration/>
...
这个属性根据上下文设置在Javaclass中。这段代码在我对应的 java class :
if(isMyFirstUseCase)
screenbean.setTgtPortlet = "portlet.myFirstValue";
else
screenbean.setTgtPortlet = "portlet.mySecondValue";
但它不起作用,portlet 属性设置不正确(标记字符串未被解释)。
我想用 portlet.myFirstValue
或 portlet.mySecondValue
设置 porlet
属性 但我无法动态设置它...
我需要逃避什么还是根本不可能?否则有人有建议或替代解决方案吗?
如果需要,我可以提供任何其他信息。
谢谢
您不能以这种方式嵌套标签;这将需要递归标记处理。
这在 XML 中是一样的——您不能将一个标签用作另一个标签的 属性 值。
应该使用普通 JSP EL 设置属性。
如果它可以帮助任何人,我找到了使用 JSLT 的解决方法:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
我使用 "write" 自定义标签(业务需求)设置了一个中间变量,其值为 java class 属性 :
<c:set var="varTgtValue"><cust:write property="tgtValue"/></c:set>
然后简单地使用这个新变量来设置我的 JSP 标签的 属性 使用 ${myVar} :
<cust:urlGeneration porlet="${varTgtValue}">
<a href="<% wsp.write(out) %>"/>the link</a>
<cust:urlGeneration/>
我是 Java 和 struts 的新手,我正在做一个项目,我需要从自定义标签中设置属性值,该标签检索 [=32] 的值=] 属性.
...
<cust:urlGeneration porlet="<cust:write property="tgtPortlet"/>">
<a href="<% wsp.write(out) %>"/>the link</a>
<cust:urlGeneration/>
...
这个属性根据上下文设置在Javaclass中。这段代码在我对应的 java class :
if(isMyFirstUseCase)
screenbean.setTgtPortlet = "portlet.myFirstValue";
else
screenbean.setTgtPortlet = "portlet.mySecondValue";
但它不起作用,portlet 属性设置不正确(标记字符串未被解释)。
我想用 portlet.myFirstValue
或 portlet.mySecondValue
设置 porlet
属性 但我无法动态设置它...
我需要逃避什么还是根本不可能?否则有人有建议或替代解决方案吗?
如果需要,我可以提供任何其他信息。
谢谢
您不能以这种方式嵌套标签;这将需要递归标记处理。
这在 XML 中是一样的——您不能将一个标签用作另一个标签的 属性 值。
应该使用普通 JSP EL 设置属性。
如果它可以帮助任何人,我找到了使用 JSLT 的解决方法:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
我使用 "write" 自定义标签(业务需求)设置了一个中间变量,其值为 java class 属性 :
<c:set var="varTgtValue"><cust:write property="tgtValue"/></c:set>
然后简单地使用这个新变量来设置我的 JSP 标签的 属性 使用 ${myVar} :
<cust:urlGeneration porlet="${varTgtValue}">
<a href="<% wsp.write(out) %>"/>the link</a>
<cust:urlGeneration/>