文档章节

Java Web(9)struts 2 validation result设置

Jagery
 Jagery
发布于 2015/12/30 17:01
字数 291
阅读 17
收藏 2
点赞 0
评论 0

1. 使用action.validate后,如果有addFieldError后,struts会自动返回一个result为“input”,在官方的文档中是这样子的解释的Validation

Validation also depends on both the validation and workflow interceptors (both are included in the default interceptor stack). The validation interceptor does the validation itself and creates a list of field-specific errors. Theworkflow interceptor checks for the presence of validation errors: if any are found, it returns the "input" result (by default), taking the user back to the form which contained the validation errors.


2. 如果想设定另外一个resultName的话,可我们可以看一下struts是如何设定的,其中执行这一部分功能的拦截器是 DefaultWorkflowInterceptor 其中关键代码如下

protected String doIntercept(ActionInvocation invocation) throws Exception {
	Object action = invocation.getAction();
	if (action instanceof ValidationAware) {
		ValidationAware validationAwareAction = (ValidationAware) action;
		if (validationAwareAction.hasErrors()) {
			if (LOG.isDebugEnabled()) {
				LOG.debug("Errors on action " + validationAwareAction + ", returning result name 'input'");
			}
			String resultName = inputResultName;
			//如何校验的当前action有实现这个类,
			//则可以使用其接口的方法getInputResultName()来返回指定的resultName
			if (action instanceof ValidationWorkflowAware) {
				resultName = ((ValidationWorkflowAware) action).getInputResultName();
			}
			//使用注解来指定
			InputConfig annotation = action.getClass().getMethod(invocation.getProxy().getMethod(), EMPTY_CLASS_ARRAY).getAnnotation(InputConfig.class);
			if (annotation != null) {
				if (!annotation.methodName().equals("")) {
					Method method = action.getClass().getMethod(annotation.methodName());
					resultName = (String) method.invoke(action);
				} else {
					resultName = annotation.resultName();
				}
			}
			return resultName;
		}
	}
	return invocation.invoke();
}

© 著作权归作者所有

共有 人打赏支持
Jagery
粉丝 3
博文 23
码字总数 11583
作品 0
玉林
程序员
MVC 框架 - Apache Struts

Struts 是 Apache软件基金会(ASF)赞助的一个开源项目。它最初是 Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用 Java Servlet/JSP 技术,实现了基于Java EE Web...

匿名
2008/09/07
0
8
MyEclipse7.5+JDK1.6+Tomcat6+Struts1.3+MySQL4.1开发演示

一、开发环境配置 MyEclipse7.5下载地址:http://www.verycd.com/topics/2753680/ JDK、Tomcat6和MySQL网上有很多提供下载链接;必须保证MyEclipse和Tomcat版本号如题,否则可能类库缺失造成...

Mr.X
2010/08/28
0
0
struts2.3.1实现登陆

准备阶段 首要做的: lib包中需要导入的struts的9个架包 commons-fileupload-1.2.2.jar commons-io-2.0.1.jar commons-lang-2.5.jar commons-logging-1.1.1.jar freemarker-2.3.16.jar javas......

李红昆
2012/01/02
0
0
Stripes tips(1)-Stripes简介

初识 Stripes 和我们熟悉 Struts 1 和 Struts 2 类似,Stripes 同样是一种展示层框架,用于快速构建web程序。在使用Struts 1,WebWork 和 Struts 2 等框架的时候,通常需要大量额外的 XML 配...

晨曦之光
2012/03/09
0
0
尚硅谷公开课--struts2--2--搭建struts2环境以及struts2简单例子

一、搭建struts环境 1、在eclipse中新建一个java web项目 2、复制jar包 在下载的struts2中,有一个apps文件夹,这个文件夹下的.war文件即是官方给出的例子,其中struts2-blank.war是一个空的...

小代码2016
2015/08/07
0
0
Maven3+Struts2.3.1.2整合的Hello World例子

这个例子讲解的是Struts2的Hello 例子。 本文的整合的环境是: 1.Maven 3 2.Eclipse 3.7 3.Struts 2.3.1.2 1.项目结构图: 本文的最终结构图如下所示,防止你跟不上后面的步骤 2.添加Struts2...

爱吃猫的小萌鱼
2014/01/12
0
0
java 上传word2007办公文件 struts配置

java 上传word2007办公文件需要 struts配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http:/......

程序员小贝
2012/11/23
0
0
Struts2,JasperReports,JDBC数据源做报表

struts.xml配置: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds......

KrisX
2014/03/15
0
0
struts2.3.1实现字符串分割用户名和密码

准备阶段 首先需要导入struts2.3.1的9个架包 commons-fileupload-1.2.2.jar commons-io-2.0.1.jar commons-lang-2.5.jar commons-logging-1.1.1.jar freemarker-2.3.16.jar javassist-3.11.......

李红昆
2012/01/02
0
0
java EE学习笔记 ---- Hibernate/Struts/Spring

2013/1/3 开始Java EE之旅 Java EE核心应是框架,先了解几个框架 Hibernate ORM工具,通过文件把值对象和数据表之间建立一个映射关系。 这句话个人理解是:实现了将应用程序的数据读写到数据...

fcsong000833
2013/01/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Service Mesh所应对的8项挑战

Lori Macvittie 微服务架构是把双刃剑,我们享受它带来的开发速度(development velocity),却也不得不面对服务间通讯带来的复杂性问题。 目前大多数扩展容器化微服务的架构多是基于proxy-b...

好雨云帮
11分钟前
0
0
时间复杂度

1. 维基上的定义 在计算机科学中,算法的时间复杂度是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低...

liuyan_lc
16分钟前
0
0
js中的~符

~是js里的按位取反操作符,~~就是执行两次按位取反,其实就是保持原值,但是注意虽然是原值,但是对布尔型变量执行这个操作,会转化成相应的数值型变量,也就是 ~~true === 1,~~false === 0...

JamesView
17分钟前
0
0
webpack安装

npm install --save-dev webpack-cli

Vincent-Duan
19分钟前
0
0
实时监听EditText内容变化

主要是addTextChangedListener方法的使用 aswerEdittext.addTextChangedListener(new TextWatcher() { //编辑框的内容发生改变之前的回调方法 @Override public void before...

王先森oO
23分钟前
0
0
python连接mysql数据库

安装好必要的pymysql插件 pip install pymysql 写好配置文档 DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), #......

南桥北木
25分钟前
0
0
linux下安装 Zookeeper

Zookeeper 注册中心安装 安装: wget http://www.apache.org/dist/zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gztar zxvf zookeeper-3.3.3.tar.gzcd zookeeper-3.3.3cp conf/zoo_......

颖辉小居
26分钟前
0
0
C#判断文件的真实类型(非扩展名判断)

public static void CheckFileType() { string path = @"D:\word.doc"; System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read); ......

Lytf
27分钟前
0
0
java - 把日志生成到指定目录

1.按天小时生成日志文件 log4j.appender.ruiming.DatePattern='_'yyyy-MM-dd-HH 2.最大日志文件数据 log4j.appender.ruiming.MaxBackupIndex=100 3.下图画圈圈的很关键,是生成到知道目录必备...

轻量级赤影
28分钟前
0
0
少走弯路,给Java 1~5 年程序员的建议

今天LZ是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍。这一部分的内容,同样适用于一些希望转行到Java的同学。 在大家看之前,LZ要先声...

Java填坑之路
29分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部