Struts2的OGNL表达式出问题了。没有被解析啊??谁帮我看看。

zhou1988217 2010-07-29 08:48:19
<s:iterator id="book" value="#request.bookList">
<tr align="center">
<td><s:property value="#book.name"/></td>
<td><s:property value="#book.author"/></td>
<td><s:property value="#book.pubDate"/></td>
<td><a href="updateBook.jsp">更新</a></td>
<td><a href="deleteBook.action?book.id=%{#book.id}">删除</a></td>
</tr>
</s:iterator>
我用如上代码(红色)访问deleteaction。后面跟参数book.id,然后在action中根据id删除数据库中的记录。
可是%{#book.id}没有被解析。
访问页面的时候。这个没有被解析。查看源代码是:<td><a href="deleteBook.action?book.id=%{#book.id}">删除</a></td>
而在别人的项目里。book.id=3.是一个具体的值。为什么OGNL%{#book.id}表达式没有起到作用,而另外的OGNL表达式却有效果。
在别人的项目里。那<td><a href="deleteBook.action?book.id=%{#book.id}">删除</a></td>是没有任何问题的。能够正确解析。我怀疑我加的jar的问题。
我只加了:
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.14.jar
struts2-spring-plugin-2.0.14.jar
commons-logging-1.0.4.jar
xwork-2.0.7.jar这六个包。和用到的Spring的包
当我点那个超链接的时候。TomCat报:警告: Parameters: Character decoding failed. Parameter 'book.id' with value '%{' has been ignored. Note that the name and value quoted here may corrupted due to the failed decoding. Use debug level logging to see the original, non-corrupted values.
...全文
246 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zidasine 2010-07-30
  • 打赏
  • 举报
回复
<s:url id="url" value="deleteBook.action">
<s:param name="book.id" value="%{#book.id}"></s:param>
</s:url>
<s:a href="%{url}"></s:a>
zhou1988217 2010-07-30
  • 打赏
  • 举报
回复
楼上朋友正解,我已经解决了。谢谢了。。
xianaofei 2010-07-30
  • 打赏
  • 举报
回复
<a href="deleteBook.action?book.id=%{#book.id}">删除</a></td>
你如果要引用的话 可以这样写
<a href="deleteBook.action?book.id=<s:property value="%{#book.id}"">删除</a></td>
里面引用OGNL的表达式
OGNL表达式只能够在<s:开头的标签里面使用的
redlotus_lyn 2010-07-29
  • 打赏
  • 举报
回复
不是jar包的问题,是你的写法问题。

OGNL表达式要用结合struts2标签使用,你用的<a>是html标签。

<td><s:a href="deleteBook.action?book.id=%{#book.id}">删除</s:a></td>
zhou1988217 2010-07-29
  • 打赏
  • 举报
回复
最是那句表达式没有效果。查看源代码表达式没有计算出值来。%{#book.id},正常的话,这个应该是对应的一个id的值啊???为什么呢??其他都正常啊。ognl.jar包也导了啊。为什么没有效果???请高手指教。。。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧