我将从Java类内部传递错误消息到JSP,并且此错误消息写在.properties
文件中。
我正在使用操作类方法addActionError(result)
来显示该错误消息,但它在JSP中将消息显示为error.register.bademail
。这不是我的书面信息。
Java类:
package com.uttarainfo.s2;
public class Model {
public List<String> register(RegBean bean) {
if(bean.getEmail().equals("bond@gmail.com"))
return "error.register.bademail"; i want to return this key
else
return "success";
}
}
行动类:
if(result.equals(SUCCESS))
return SUCCESS;
else
{
addActionError(result);
return "failure";
}
这是JSP代码:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>Register</h1>
<s:form action="register" method="post" enctype="multipart/form-data">
<s:textfield key="bean.uname"/>
<s:textfield key="bean.email"/>
<s:password key="bean.pwd"/>
<s:password key="bean.rpwd"/>
<s:file key="bean.pic"/>
<s:submit/>
<s:actionerror/>
</s:form>
</body>
</html>
答案 0 :(得分:0)
尝试
addActionError(getText(result));
getText()
用于从资源中检索本地化消息。所有你需要提供密钥。
答案 1 :(得分:0)
我想看看struts.xml以及属性文件。请把代码。
编辑: 好吧,所以我从你的编辑中理解的是你必须返回一个列表(就像在java中一样)而不是动作类中的字符串。如果是,你不能这样做。但是,使用struts-2-json插件将json对象返回到视图。
http://www.mkyong.com/struts2/struts-2-and-json-example/
此外,操作方法返回的数据类型无关紧要,因为您只能返回字符串,但您在操作类中设置了哪些属性。因此,您可以在视图中访问动作类中设置的属性。对于List(在动作类中设置),您将必须使用迭代器。
此外,如果您刚刚与struts2说过,我会建议您了解MVC&amp;吸气剂的作用&amp;塞特犬。
Can I use mvc without getters and setters?
感谢您的投入, 如果你得到错误,那么你也应该返回一个字符串。 使用该字符串将显示struts.xml中的映射错误页面。 例如。处理数据时你发现它不一致然后你可以返回一个字符串“error”,而在struts中它显示为
<action name="yourAction" class="action.Action">
<result name="error">/Error.jsp</result>
</action>
对于您应该寻找的异常处理,或者很快您可以转到下面的链接 http://struts.apache.org/release/2.3.x/docs/exception-handling.html
如果我回答你的问题,请告诉我。