标签中value使用表达式变量的问题

genii2008 2008-02-24 11:22:00

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title> Condition Flow </title>
</head>
<body>
<h3> Condition Flow </h3>
username:<%="'"+request.getParameter("name")+"'" %><br>
<s:set name="name" value ="<%="'"+request.getParameter("name")+"'" %>"></s:set><br>
username:<%="'"+request.getParameter("name")+"'" %><br>

</body>
</html>



在运行的时候,这句报错
<s:set name="name" value ="<%="'"+request.getParameter("name")+"'" %>"></s:set><br>


请求URL http://localhost:8080/struts2Demo/condition.jsp?name='java'

出错信息:
description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: /condition.jsp(11,16) According to TLD or attribute directive in tag file, attribute value does not accept any expressions
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1172)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:819)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1507)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2336)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2386)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2392)
org.apache.jasper.compiler.Node$Root.accept(Node.java:489)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2336)
org.apache.jasper.compiler.Validator.validate(Validator.java:1737)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:178)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413)

其实就是要通过URL来传一个值,然后在页面获取,这个值后面有用,需要判断的.我想全部都用标签来解决
有什么好的解决方案么?
...全文
2520 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjl1174 2009-01-12
  • 打赏
  • 举报
回复
#name 来取值
wujulong 2008-11-07
  • 打赏
  • 举报
回复
value="#request.name"
wujulong 2008-11-07
  • 打赏
  • 举报
回复
#request.name 不知道这样的方式是否可以的
crowson 2008-07-23
  • 打赏
  • 举报
回复
楼上的正解.
kxcc_sx 2008-07-22
  • 打赏
  • 举报
回复
原因可能是因为你使用了<%..%>代码 or JSP EL表达式。Struts 2从 version2.0.11开始已经不支持strutstag与JSP EL表达式混合使用了(不在struts tag里使用EL还是可以的),而只支持OGNL (关于OGNL介绍的中文连接:http://www.blogjava.net/max/archive/2007/04/28/114417.html)。
原因见:http://struts.apache.org/2.0.11/docs/release-notes-2011.html
zhuxinyu2 2008-05-06
  • 打赏
  • 举报
回复
版本问题 用以前的版本可以,2.1以后的版本都不行了
genii2008 2008-02-28
  • 打赏
  • 举报
回复
哈哈,发现只有20分,每人给4分
genii2008 2008-02-28
  • 打赏
  • 举报
回复
struts2用的不熟,郁闷,慢慢来!
genii2008 2008-02-28
  • 打赏
  • 举报
回复
他NND,全部用JSTL来写,火了,结贴!!!!!!!!!!!!!!!!!!!!!!!!!
genii2008 2008-02-28
  • 打赏
  • 举报
回复
谢谢各位,<s:set/>中不能使用表达式来给value赋值,<%= %>和${param.name}都不可以,很奇怪
learnner 2008-02-27
  • 打赏
  • 举报
回复
<s: 中不能使用<% %>
wangshizhu79 2008-02-27
  • 打赏
  • 举报
回复
刚才理解错了
你试试这样行吗
(String)request.getParameter("name")
wangshizhu79 2008-02-27
  • 打赏
  • 举报
回复
value里加这个<%= %>干什么用?
value="{name}"
genii2008 2008-02-27
  • 打赏
  • 举报
回复
沉了....
顶起
genii2008 2008-02-26
  • 打赏
  • 举报
回复
貌似不行
genii2008 2008-02-26
  • 打赏
  • 举报
回复
这个问题还没有人回答么?
genii2008 2008-02-25
  • 打赏
  • 举报
回复
今天不管了,明天再来看
zenggang2008 2008-02-25
  • 打赏
  • 举报
回复
就直接用value="name"吧
genii2008 2008-02-25
  • 打赏
  • 举报
回复
顶下,帖子要沉了
genii2008 2008-02-25
  • 打赏
  • 举报
回复
楼上的兄弟啊,也不行,这个方法早就试过了
加载更多回复(6)

67,513

社区成员

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

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