就是我在单使用STRUTS2这个框架来做项目的时候,在前台使用$并不能够获取,反而我用了
<s:textfield name="username"  label="用户名" value="%{#attr.users.username}" readonly="true"></s:textfield>  
方法却获取到了,请教各位大神,这是为什么呀?
就是我使用$获取的话,一定就会报500错误,这到底是什么原因呢?我的这种获取方法也是别人给我讲的,跪求解释这是什么原因!!!谢谢了,小弟拜谢

解决方案 »

  1.   

    因为Struts2标签  传值到struts2的时候  会自动转成它能读懂的字符编码  我不清楚你问的问题是不是这样   但你说报500错误一般就是你内部出问题了  代码或是逻辑写法上出现错误才导致的  
      

  2.   

    EL表达式可以取出你的对象值,${users.username}这样难道不行吗
      

  3.   


    是呀,就是你说的那种方法我也试过了,就不不能够获取的,报的空指针,但是我用表格获取也是可以得到的而且换成我说的用value="%{#attr.users.username}也可以了,所以就不明白什么原因。
      

  4.   


    逻辑和代码没有什么错误,我用表格直接获取值也是可以的,就是我的值已经传到数据库了,但是在struts2里面用$就是调用不到,所以不知道为什么。
      

  5.   

    struts2标签中不能使用el表达式。
      

  6.   

    struts2是和ognl配合使用的。el是和jstl配合使用的。struts2标签不允许使用el表达式因为struts2标签解析类的源代码中就是这样规定的
      

  7.   

    EL表达式肯定是可以的,确定getter/setter方法都没问题么。
      

  8.   

    是呀,我很确定没有错误的,要不然我也不会获取到值呀,我现在就是用$来获取就不行,直接取值就可以,就是这样,我用的是myeclipse8.5
      

  9.   


    哦,是这个原因呀,我还以为是系统BUG呢,因为我在书上看到的是用$来调用是可以的,但是我自己却不行,所以就有这样的疑问,嘿嘿,谢谢你呢
      

  10.   

    Struts2标签获取后台的值的方法很多...
    获取的是requet中的对象值 第一种方式:<s:property value="#request.user1.realName"/>  
    第二种方式:<s:property value="#request.user1['realName']"/>  
    第三种方式:<s:property value="#user1.realName"/>  第四种方式:<s:property value="#user1['realName']"/>  第五种方式:${requestScope.user1.realName }  || ${requestScope.user1['realName'] }  
           
    第六种:<s:property value="#attr.user1.realName"/>  attr对象按page==>  request sessionapplictio找的    <h3>获取session中的值</h3>  第一种方式:<s:property value="#session.user1.realName"/>  第二种方式:<s:property value="#session.user1['realName']"/>  
       
    第五种方式:${sessionScope.user1.realName }  || ${sessionScope.user1['realName'] }  <h3>获取application中的对象的值</h3>  第一种方式:<s:property value="#application.user1.realName"/>  第二种方式:<s:property value="#application.user1['realName']"/>  第五种方式:${applicationScope.user1.realName }  || ${applicationScope.user1['realName'] }  
      

  11.   

    7L回答言简意赅,+10086!1.$开头的是el表达式,需要导入jstl包<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>2.#开头的是ognl表达式,需要导入struts的包<%@ taglib prefix="s" uri="/struts-tags" %>ps:目测lz没有导jstl的包所以无法使用el表达式。ps的ps:这两种表达式不冲突,完全可以混合使用,只要同时将两个包导入即可。