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

新手求解,struts2中的<s:fielderror>不显示值
各位大侠,小弟被一问题困惑,很是不解,我在action中用addFieldError("errorUserName","用户名填写错误")生成错误信息,在jsp页面中通过<s:fielderror fieldName="errorUserName" theme="simple" />输出不了错误信息,改用
<s:fielderror theme="simple">
 <s:param>errorUserName</s:param>
</s:fielderror>也拿不到值,
让小弟不解的是我用<s:debug>调试,发现valueStack里面的fieldErrors是有值的。
小弟已经纠结好久了,求指教!!!!!
------解决方案--------------------
在页面使用<actionError>标签
------解决方案--------------------
偶一直都用request.setAttribute来存错误信息,然后在jsp用<s:property value="#request.errorInfo"/>来显示。感觉用struts2的错误提示标签很麻烦,而且错误提示的html样式不能改的。。
------解决方案--------------------
如果我没记错的话应该还要写另一个标签才会出来
------解决方案--------------------
fielderror标签输出action的fieldErrors属性保存的字段错误,fieldErrors是一个map类型的属性。

Action类中这样定义:

public String execute() throws Exception{

...

addFieldErrors("field1", "field1 error");

addFieldErrors("field2", "field2 error");

...

}

jsp中输出错误信息:

<s:fielderror/>


------解决方案--------------------
Action继承ActionSupport试下
------解决方案--------------------
引用:
Action继承ActionSupport试下

已经继承了,还是有问题
------解决方案--------------------
引用:
fielderror标签输出action的fieldErrors属性保存的字段错误,fieldErrors是一个map类型的属性。

Action类中这样定义:

public String execute() throws Exception{

...

addFieldErrors("field1", "field1 error");

addFieldErrors("……

我程序中就是这样用的啊,不知道为什么显示不出来
------解决方案--------------------
引用:
如果我没记错的话应该还要写另一个标签才会出来


什么标签?求教。。。。
------解决方案--------------------
引用:
如果我没记错的话应该还要写另一个标签才会出来


另一标签可以使用<s:property value="errors.fieldname[0]"/>获取自定义样式的错误信息。
------解决方案--------------------
看看execute()方法名有没写错
------解决方案--------------------
js<script>里面写
if($("#message ul span").html().length>0){
alert($("#message ul span").html());
};body里面要定义<div id="message" style="display:none"><s:fielderror /></div>;然后action里面写this.addFieldError("successSet", "设置成功!");就可以成功显示提示信息。一直都是这样用的
------解决方案--------------------
可能是返回类型错误 应该是请求转发 不能是重定向
------解决方案--------------------
不用struts2的标签怎么显示错误信息呢?我也是觉得标签格式不能改太不方便