<%
Users user=(Users)session.getAttribute("userInfo");
%>
<s:textfield name="username" value=""></s:textfield>value值里面要怎么写才能够拿到user里的username的值?试过好多种方法都不行
<s:textfield name="username" value="${user.username}"></s:textfield><s:textfield name="user.username" value="${username}"/><s:textfield name="user.username" value="#request.username"/>直接用<%=user.getUsername()%>也不行!
According to TLD or attribute directive in tag file, attribute value does not accept any expressions登陆后我把用户信息放到session里,用户想修改的时候我想给他显示以前的值,请问要怎么做才能让textfield 里显示user里的username值?谢谢!
Users user=(Users)session.getAttribute("userInfo");
%>
<s:textfield name="username" value=""></s:textfield>value值里面要怎么写才能够拿到user里的username的值?试过好多种方法都不行
<s:textfield name="username" value="${user.username}"></s:textfield><s:textfield name="user.username" value="${username}"/><s:textfield name="user.username" value="#request.username"/>直接用<%=user.getUsername()%>也不行!
According to TLD or attribute directive in tag file, attribute value does not accept any expressions登陆后我把用户信息放到session里,用户想修改的时候我想给他显示以前的值,请问要怎么做才能让textfield 里显示user里的username值?谢谢!
楼主【lax471】截止到2008-06-30 23:43:49的历史汇总数据(不包括此帖):
发帖数:0 发帖分:0
结贴数:0 结贴分:0
未结数:0 未结分:0
结贴率:-------------------结分率:-------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
<s:textfield name="user.username" value="#request.userInfo.username"/>
问题我是解决了,但用的不是这种方法。
我一开始的想法是错误的,不应该用这种方法。
用户登陆后把他的全部信息放在session里,这种做法很正常,但是用<s:textfield>,会提示你不支持任何表达式。
我们为什么会用struts2的标签,不用html的标签,原因很简单,就是他在提交失败后会留住页面状态。
反之,如果<s:textfield>的value属性支持表达式,那么提交失败后,它还会去读表达式里的值,也就是说它会还原成默认值,而不是用户修改后的值,这是我们都不想要的结果,我们要的是它既能显示默认值又能留住页面状态(修改过后的值)。所以,我们可以这样去做:
我们去写一个GetUserInfo.action,在这个action里,我们去定义一个属性:Users user给它get,set方法,然后我们给他赋上session里的值,成功后页面跳转到jsp页面里,在jsp里面,我们这样去写:<s:textfield name="user.username"/>
只要user里面有值,页面上就会显示我们想要的值,而用户修改后提交失败后也能留住修改过后的值,这才是我们想要的效果。
当然,那个GetUserInfo.action就是修改个信息的超链接,而不是之前的jsp页面。
修改链接为:《struts2 <s:textfield> value属性默认值解决方案》欢迎指教!
可用
<p>不使用%:<s:url value="#foobar['foo1']" /></p> 输出:#foobar['foo1']<p>使用%:<s:url value="%{#foobar['foo1']}" /></p> 输出:bar
说明了 %符号的用途是在标记的属性为字符串类型时,计算OGNL表达式的值。
引用 12 楼 的回复:
5楼的value="%{#session.userInfo.username}"这种是什么取值方式,哪位大虾能解释下呢<s:set name="foobar" value="#{'foo1':'bar','foo2':'bar2'}" /><p>The value of key "foo1" is
<s:property value="#foobar['foo1']" /></p>
<p>不使用%:<s:url value="#foobar['foo1']" /></p> 输出:#foobar['foo1']
<p>使用%:<s:url value="%{#foobar['foo1']}" /></p> 输出:bar说明了 %符号的用途是在标记的属性为字符串类型时,计算OGNL表达式的值。