public static final String SUCCESS = "success"; public static final String NONE = "none"; public static final String ERROR = "error"; public static final String LOGIN = "login"; public String execute() throws Exception;
public class ActionSupport implements Action, Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable {
protected static Logger LOG = LoggerFactory.getLogger(ActionSupport.class);
private final ValidationAwareSupport validationAware = new ValidationAwareSupport();
private transient TextProvider textProvider;
private Container container;
public void setActionErrors(Collection<String> errorMessages) {
validationAware.setActionErrors(errorMessages);
}
public Collection<String> getActionErrors() {
return validationAware.getActionErrors();
}
public void setActionMessages(Collection<String> messages) {
validationAware.setActionMessages(messages);
}
public Collection<String> getActionMessages() {
return validationAware.getActionMessages();
}
@Deprecated
public Collection<String> getErrorMessages() {
return getActionErrors();
}
@Deprecated
public Map<String, List<String>> getErrors() {
return getFieldErrors();
}
public void setFieldErrors(Map<String, List<String>> errorMap) {
validationAware.setFieldErrors(errorMap);
}
public Map<String, List<String>> getFieldErrors() {
return validationAware.getFieldErrors();
}
public Locale getLocale() {
ActionContext ctx = ActionContext.getContext();
if (ctx != null) {
return ctx.getLocale();
} else {
if (LOG.isDebugEnabled()) {
LOG.debug("Action context not initialized");
}
return null;
}
}
public boolean hasKey(String key) {
return getTextProvider().hasKey(key);
}
public String getText(String aTextName) {
return getTextProvider().getText(aTextName);
}
public String getText(String aTextName, String defaultValue) {
return getTextProvider().getText(aTextName, defaultValue);
}
public String getText(String aTextName, String defaultValue, String obj) {
return getTextProvider().getText(aTextName, defaultValue, obj);
}
public String getText(String aTextName, List<?> args) {
return getTextProvider().getText(aTextName, args);
}
public String getText(String key, String[] args) {
return getTextProvider().getText(key, args);
}
public String getText(String aTextName, String defaultValue, List<?> args) {
return getTextProvider().getText(aTextName, defaultValue, args);
}
public String getText(String key, String defaultValue, String[] args) {
return getTextProvider().getText(key, defaultValue, args);
}
public String getText(String key, String defaultValue, List<?> args, ValueStack stack) {
return getTextProvider().getText(key, defaultValue, args, stack);
}
public String getText(String key, String defaultValue, String[] args, ValueStack stack) {
return getTextProvider().getText(key, defaultValue, args, stack);
}
public String getFormatted(String key, String expr) {
Map<String, Object> conversionErrors = ActionContext.getContext().getConversionErrors();
if (conversionErrors.containsKey(expr)) {
String[] vals = (String[]) conversionErrors.get(expr);
return vals[0];
} else {
final ValueStack valueStack = ActionContext.getContext().getValueStack();
final Object val = valueStack.findValue(expr);
return getText(key, Arrays.asList(val));
}
}
public ResourceBundle getTexts() {
return getTextProvider().getTexts();
}
public ResourceBundle getTexts(String aBundleName) {
return getTextProvider().getTexts(aBundleName);
}
public void addActionError(String anErrorMessage) {
validationAware.addActionError(anErrorMessage);
}
public void addActionMessage(String aMessage) {
validationAware.addActionMessage(aMessage);
}
public void addFieldError(String fieldName, String errorMessage) {
validationAware.addFieldError(fieldName, errorMessage);
}
public String input() throws Exception {
return INPUT;
}
public String doDefault() throws Exception {
return SUCCESS;
}
public String execute() throws Exception {
return SUCCESS;
}
public boolean hasActionErrors() {
return validationAware.hasActionErrors();
}
public boolean hasActionMessages() {
return validationAware.hasActionMessages();
}
public boolean hasErrors() {
return validationAware.hasErrors();
}
public boolean hasFieldErrors() {
return validationAware.hasFieldErrors();
}
public void clearFieldErrors() {
validationAware.clearFieldErrors();
}
public void clearActionErrors() {
validationAware.clearActionErrors();
}
public void clearMessages() {
validationAware.clearMessages();
}
public void clearErrors() {
validationAware.clearErrors();
}
public void clearErrorsAndMessages() {
validationAware.clearErrorsAndMessages();
}
public void validate() {
}
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
public void pause(String result) {
}
private TextProvider getTextProvider() {
if (textProvider == null) {
TextProviderFactory tpf = new TextProviderFactory();
if (container != null) {
container.inject(tpf);
}
textProvider = tpf.createInstance(getClass(), this);
}
return textProvider;
}
@Inject
public void setContainer(Container container) {
this.container = container;
}
<body> <%--输出校验信息--%> <%--想要单个提示 <s:fielderror fieldName="uname"/>--%> <%--<s:property value=""/> --%><div style="color:red"><s:fielderror/></div> <s:form name="form1" namespace="/" method="post" action="LoginValidateAction"> <s:div>请输入用户名:<s:textfield name="user.uname" ></s:textfield></s:div> <s:div>请输入密码:<s:password name="user.upwd" ></s:password></s:div> <s:submit value="登录"></s:submit> </s:form> <%--debug --%> <s:debug></s:debug> </body>
public class LoginValidateAction extends ActionSupport implements Action {
public User user;
public Map<String, Object> map;
//验证的方法,会对所有的Action起作用
@Override
public void validate() {
if(user.getUname().length()==0){
addFieldError("uname", "用户名不能为空!");
}
if(user.getUpwd().length()==0){
addFieldError("upwd", "密码不能为空!");
}
}
//处理业务的方法
public String execute() throws Exception {
System.out.println(user.getUname());
if(user.getUname().equals("admin")&&user.getUpwd().equals("admin")){
//让Struts2注入 map集合
map.put("uname", user.getUname());
//如果登录成功,返回“ success”
return SUCCESS;
}
else{
//登录失败,返回 error
return INPUT; //此处一定是 input
}
}
/**
* @return the user
*/
public User getUser() {
return user;
}
/**
* @param user the user to set
*/
public void setUser(User user) {
this.user = user;
}
<!-- 数据校验 --> <action name="LoginValidateAction" class="cn.struts2.action.LoginValidateAction"> <!-- 结果为“success”时,跳转至success.jsp页面 --> <result name="success">success.jsp</result> <!-- 结果为"error"时,跳转至fail.jsp页面 或 还在登录界面 login.jsp--> <result name="input">LoginValidateAction.jsp</result> <result name="login">fail.jsp</result> <result name="error">fail.jsp</result> </action>
<constant name="struts.ui.theme" value="simple" />
<s:property value="errors.uname[0]"/>
<div style="color:red"><s:fielderror/></div>
<field name="要校验的Field名"> <field-validator type="校验规则器名" short-circuit="是否要短路径校验(默认是false)"> <param name="校验器要使用的参数名">值</param> <message>校验失败时的提示消息</message> </field-validator> <!-- 还可添加其它的校验规则 --> </field>
<validator type="fieldexpression"> <param name="fieldName">pwd</param> <param name="fieldName">pwd2</param> <param name="expression"><![CDATA[pwd==pwd2]]></param><!-- OGNL表达式 --> <message>确认密码和密码输入不一致</message> </validator>
<!-- 针对自定义Field使用visitor校验 --> <field name="user"> <field-validator type="required" short-circuit="true"> <message>用户的信息必填</message><!-- 消息前缀 --> </field-validator> <field-validator type="visitor"><!-- 指定为visitor校验规则 --> <param name="context">userContext</param><!-- 指定本visitor校验的上下文名 --> <param name="appendPrefix">true</param><!-- 是否要添加校验失败消息的前缀 --> <message>用户的</message><!-- 消息前缀 --> </field-validator> </field>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
<validators>
<field name="uname">
<field-validator type="requiredstring">
<message>用户名不能为空</message>
</field-validator>
</field>
<field name="upwd">
<field-validator type="requiredstring">
<message>密码不能为空</message>
</field-validator>
<field-validator type="stringlength">
<param name="maxLength">18</param>
<param name="minLength">6</param>
<message>密码长度应该在${minLength}--${maxLength}位之间</message>
</field-validator>
</field>
</validators>
public class LoginValidateAction extends ActionSupport implements Action {
public User user;
public Map<String, Object> map;
//验证的方法,会对所有的Action起作用
@Override
public void validate() {
if(user.getUname().length()==0){
addFieldError("uname", "用户名不能为空!");
}
if(user.getUpwd().length()==0){
addFieldError("upwd", "密码不能为空!");
}
}
//处理业务的方法
public String execute() throws Exception {
System.out.println(user.getUname());
if(user.getUname().equals("admin")&&user.getUpwd().equals("admin")){
//让Struts2注入 map集合
map.put("uname", user.getUname());
//如果登录成功,返回“ success”
return SUCCESS;
}
else{
//登录失败,返回 error
return INPUT; //此处一定是 input
}
}
/**
* @return the user
*/
public User getUser() {
return user;
}
/**
* @param user the user to set
*/
public void setUser(User user) {
this.user = user;
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有