Struts 2 URL不会替换正确的值

时间:2011-11-02 23:54:18

标签: java jsp struts2 struts

我正在关注Struts 2 Tutorial - Using Struts 2 Tags

到目前为止,所有内容都按预期工作,直到我将以下内容添加到index.jsp:

<s:url action="hello" var="helloLink">
    <s:param name="userName">Bruce Phillips</s:param>
</s:url>
<p><a href="${helloLink}">Hello Bruce Phillips</a></p>

预期结果是锚链接(Hello Bruce Phillips)应该用hello.action的相应URL替换参数userName encoded,但不会发生替换,这就是元素呈现的方式:

<p>
    <a href="${helloLink}">Hello Bruce Phillips</a>
</p>

我的语法有什么问题吗?

环境:

  • 在GlassFish 2.1和3.1.1中都尝试过同样意想不到的结果。
  • Struts 2.2.3.1
  • Mac(狮子)与java6 jdk
  • 标签定义:&lt;%@ taglib prefix =“s”uri =“/ struts-tags”%&gt;

2 个答案:

答案 0 :(得分:5)

如果 JSP EL评估,请检查以下内容:

  • web.xml未声明为Servlet 2.4或更高版本。
  • @page配置为isELIgnored = true。
  • web.xml在<el-ignored>true</el-ignored>中配置了<jsp-config>

我猜第一个。

@ user873670的答案也可以,但在正确配置的应用中不是必需的。

答案 1 :(得分:1)

Struts 2不进行JSP评估,它进行OGNL评估。简单地说它是%{variable}和#variable而不是$ {variable}。

当我们谈论Struts2标签时,这意味着你应该替换

    <a href="${helloLink}">

    <a href='<s:property value="helloLink"/>'>

    <s:a href="%{helloLink}" >Edit</s:a>

我希望它有所帮助!