繁体   English   中英

JSP 未终止<s:a>使用嵌套 OGNL 标记

[英]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 &lt;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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM