[英]JSP Unterminated <s:a> Tag With Nested OGNL
我有一些 OGNL 用于将<s:a>
的 href 元素填充到动态生成的 URL,由 Google UserService 处理。
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="requestUri" value="%{#context['com.opensymphony.xwork2.dispatcher.HttpServletRequest'].requestURI}" />
<s:a href="%{#action.userService.createLoginURL("<c:out value="${requestUri}"/>");}">Sign in</s:a>
但是,我收到一条错误消息,指出<s:a>
标记未终止。 我曾尝试转义内部语音标记,并使用单引号,但到目前为止,我一直收到相同的错误消息。
(11,71) Unterminated <s:a tag
我这辈子都看不出哪里出了问题。 也许对语言有更好眼光的人会看到我看不到的东西。
你不能在 Struts 标签的属性中使用 JSP 标签,但你可以在那里使用 OGNL。
另请注意,您只能在 Struts 标签的属性中使用 OGNL。 并且在大多数情况下 OGNL 在服务器上执行一次,您不应该使用嵌套的 OGNL 或任何您称之为的东西。 可能这个问题会告诉你如何使用你调用的嵌套 OGNL 。
<s:set var="requestUri" value="%{#context['com.opensymphony.xwork2.dispatcher.HttpServletRequest'].requestURI}" />
<s:a href="%{#action.userService.createLoginURL(#requestUri)}">Sign in</s:a>
啊好问题解决了。 结果证明不需要 c:out 来输出 requestUri 的值。 它可以简单地保持原样,用其余的表达式进行评估
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.