<%@ page language="java"
import="java.util.*,com.opensymphony.xwork2.ActionContext"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head> <body>
<%
request.getSession().setAttribute("recUsername", "zs");
request.getSession().setAttribute("sendUsername", "ls");
%> <s:form action="sendMessage" namespace="/messgae" method="post">
内容:<s:textarea cols="30" rows="10" name="message.content"></s:textarea>
<br />

<s:hidden name="message.recUsername" value="#session.recUsername"></s:hidden>
<s:hidden name="message.sendUsername" value="#session.sendUsername"></s:hidden>
<s:submit value="发送"></s:submit>
</s:form>
</body>
</html>

解决方案 »

  1.   

    你这页面上哪有"OGNL表达式"?你会写ognl表达式就不会有这疑问了。
      

  2.   

     value="#session.recUsername"直接改成value="${recUsername}"试试
      

  3.   

    你先别隐藏,看看你的value值是否获取到了
      

  4.   

    value="${recUsername}"  这个也不行!  保存到数据库中就成${recUsername}了。。我想要的是 session范围的zs
      

  5.   


    百分号加上区别字符串与ognl表达式
    %{#session.recUsername}
      

  6.   

    strtus2的标签中不能用EL表达式
      

  7.   


    struts2标签有两种一种是字符串表达式,一种是对象表达式。加上%{}用来区别的,字符串表达的话它就知道value中的是变量,加上%{}对对象表达式没有作用。
      

  8.   

    value="#session.recUsername"直接改成value="${sessionScope.recUsername}"试试
      

  9.   

    也可能和楼主用的标签用关系。我项目中一直用的就是HTML的原始标签这种封装没有任何问题。
      

  10.   

    session和request优先级导致,request优先级高于session,你上边的赋值是在session中,下边的是虽然后台外表用的是ognl但其实还是request中的
      

  11.   

    +1,记住struts2中不能使用el。
      

  12.   

    百分号加上区别字符串与ognl表达式
    %{'#session.recUsername'}试试