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