<s:iterator value="listUser" id="listUserInfo">

<tr>
<td>
<s:property value="id"/>
</td> <td>
<s:property value="fristname"/>
</td>

<td>
<s:property value="lastname"/>
</td>
<td>
<s:property value="age"/>
</td>
<td><a href="delUser.action?user.id=${id}" onclick="userDel('${id}')">delete</a></td>
最后一行 用$就可以获取id的值 用%怎么就获取不了   %{id}这样就不行  
问一下 % 和$获取参数的区别

解决方案 »

  1.   

    ${属性名}这是EL表达式 的格式,不能用%代替
    就像‘int’不能用’int1‘代替一样,是个关键字
      

  2.   

    $是el表达式  %的用法可以是这样 <%=id%>
      

  3.   

    STRUTS2中的${}是取值表示...........而%{}这样是错误写法,%代表的是当前堆栈中的ROOT............比如,我们的作用域中有一个USER对象存放在REQUEST中..........如果需要使用%号来得到数据,则写为:%request.user.id这种写法,意思是:在我的堆栈中,在REQUEST范围的队列中,把ROOT引用到了USER对象上,即现在的ROOT为USER对象,而id则是ROOT的子级
      

  4.   

    $操作符:是EL表达式的用法。即:${属性名}
    %操作符:是OGNL表达式的用法。即:%{属性名},但必须结合struts2标签使用。
    <td><s:a href="delUser.action?user.id=%{id}" onclick="userDel('%{id}')">delete</s:a></td>
      

  5.   

    对这个是我想要得 我今天解决了 必须结合struts 2的标签
      

  6.   

    一个是el表达式 一个是ognl表达式
      

  7.   

    学习了$操作符:是EL表达式的用法。即:${属性名}
    %操作符:是OGNL表达式的用法。即:%{属性名},但必须结合struts2标签使用。
    <td><s:a href="delUser.action?user.id=%{id}" onclick="userDel('%{id}')">delete</s:a></td>