EL表达式取不到值,高手帮忙看看
${product.name }取不到值,从数据库里确实拿到了数据,并且放在了request范围内,为什么在页面上取不到值
[解决办法]
request是每个请求都新建一个的,数据放在request里以后如果用forward转到显示页然后用el表达式还是能取到request的值的,如果是redirect就取不到了。
你先试试放在session里能不能拿到。如果能拿到,那就是request生命周期的问题了。
[解决办法]
你试试用{requestScope.product.name}
[解决办法]
你的数据是放到request里面名为product的Attribute里面么?
并且名为product的Attribute里面有getName()这个方法?
[解决办法]
你是如何放到request里面的,你贴些代码看看。
另外你看一下页面上的位置里显示什么内容,是空的还是其他的。
[解决办法]
${product.name }
你的product是怎么定义的
发出来看看~
[解决办法]
- Java code
<% String name = ((Product)request.getAttribute("product")).getName(); System.out.println(name);%>
[解决办法]
{requestScope.product.name},用这个
[解决办法]
在程序里request.setAttribute("product",product);
并且在bean里有getName()方法;
另问下是struts1还是2
2的话直接set,get就行
[解决办法]
你把对象方进request里面
哪你有没有对request进行转发啊
[解决办法]
[解决办法]
[解决办法]
product是你存放信息的, 是你实体累name的私有字段, product有值一定能取到值
[解决办法]
[解决办法]
学习
[解决办法]
用structs的标签库去取值
Java code//struts1.x,ProductAction中:List <product> produtListrequest.setAttribute("produtList", produtList);
页面中:
Java code <logic:iterater id="${produtList}" var="product">
${product.name} </logic:iterator>
肯能代码有点错,自己去看一下语法怎么样的?我以前也碰到这样的问题。
[解决办法]
你放在作用域是不是这样的啊
request.setAttribute("products",products);
你的products是一个对象吧
它里面肯定得有一个name属性吧,
你确定一那一定有
[解决办法]
是用的forward转发的么?还有,引用了jstl吗?
[解决办法]
那你看看有没有导入包啊,
------解决方案--------------------
在jsp上做一个测试,看一下这样能打出来吗?
- Java code
<% Product p1 = new Product (); p1.setName("测试"); p1.setAttribute("p1",p1)
[解决办法]
从这里看是你的el表达式并没有被解析出来,你使用的tomcat版本是多少?你尝试使用6.0版本的试试。