日期:2014-05-19  浏览次数:20581 次

struts2 的标签<s:property>的问题
一个小例子,目的是用来实现在jsp中通过<s:property>访问action中传过来的对象中的属性,jsp代码如下:
HTML code
<form action="" method="post" name="registerForm">
        <input type="button" value="注册" onclick="register();" /><br />
        <s:textfield name="user.username" id="username" label="name"></s:textfield>
        <s:textfield name="user.pwd" id="password" label="password"></s:textfield>
        <s:textfield name="pageinfo.pagestatus" ></s:textfield>
        <br />
        <p class="ys001">
            <s:property value="pageinfo.pagestatus" />
        </p>
    </form>


这种情况下textfield处和property处都可以得到从action中传过来的值 但我如果删掉
  <s:textfield name="pageinfo.pagestatus" ></s:textfield>
这一行,就会报错HTTP Status 500 - The server encountered an internal error () that prevented it from fulfilling this request.


求解到底是什么地方除了问题?


注:pageinfo.pagestatus 是一个String对象。我试了下,如果不用pageinfo.pagestatus,直接在action中定义一个String对象pagestatus,然后jsp页面改成:
HTML code
<form action="" method="post" name="registerForm">
        <input type="button" value="注册" onclick="register();" /><br />
        <s:textfield name="user.username" id="username" label="name"></s:textfield>
        <s:textfield name="user.pwd" id="password" label="password"></s:textfield>
        <br />
        <p class="ys001">
            <s:property value="pagestatus" />
        </p>
    </form>


property处是可以得到action中传过来的pagestatus的。  


------解决方案--------------------
你为何不用ognl?
------解决方案--------------------
s标签我一般只用s:if、s:iterator、s:property这三个标签
其他的一般都用html的原生标签
这个问题不太清楚
楼主可改成原生标签试试
------解决方案--------------------
<s:property value="#request.属性名"/>
------解决方案--------------------
探讨

引用:
你为何不用ognl?
ogna是什么?Struts 2默认的表达式语言不就是是OGNL吗?

我的异常网推荐解决方案:The server encountered an internal error () that prevented it from fulfilling this request.,http://www.aiyiweb.com/java-web/317.html