`
gaosililn
  • 浏览: 70294 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

ssh学习:struts2的返回结果集input

 
阅读更多

struts2返回结果集input值的作用于用法

在struts.xml配置文件当中action下的result标签name值为input时,即:<result name="input"></result>能起到校验数据并自动跳转到指定的链接下

比如咋输入的数据要求是整形实际输入却是字符串;要求不能提交为空的字符,提交的实际数据却是空的等等。当检验数据不符合要求时候,可以使用<result name="input"></result>跳转到指定的页面链接或者action等。

诶呀,讲的不清楚,用实际的小demo来看看也许能更易懂一点。

定义一个数据封装的对象Java bean类:User

 

public class User  implements Serializable{
	private String name;
	private String psw;
	private int age;
//下面还要实现三属性的get/set方法	
}

 struts.xml文件配置如下:

<action name="sectAction" class="com.usc.geowind.lilin.actions.SecAction"
			method="execute">
			<result name="success">
				/success.jsp
			</result>
                        <!-- 数据校验错误时候执行该返回集 -->
			<result name="input">
				/inputError.jsp
			</result>

		</action>

此时我们在action类中,只实现数据封装,不做任何的数据校验判定。

public class SecAction extends ActionSupport {
	private User user;

	@Override
	public String execute() throws Exception {
		System.out.println(user);
		return SUCCESS;
	}

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

}

 当从前台提交的表单中的age值是字符串时候,action就会自动的跳转到inputError.jsp页面下,当数据提交是符合要求的时候就会跳转到success.jsp页面下

怎么使用<result name="input"></result>进行数据校验呢?

以上面的为例,校验用户名是否为空,数据为空是不符合要求则继续跳转到Login.jsp页面

Login.jsp部分代码

<s:form namespace="" action="sectAction" method="post">
		<s:textfield label="useName" name="user.name"/>
		<s:fielderror name="userNameError"></s:fielderror>
		<s:textfield label="age" name="user.age"/>
		 <s:password label="psw" name="user.psw"/>
		<s:submit label="submit"></s:submit>
		<s:reset label="reset"></s:reset>
	</s:form>

 action类的代码:

public String execute() throws Exception {
		if (user.getName() == null || "".equals(user.getName())) {
			//向jsp的struts标签提示信息
			this.addFieldError("userNameError", "用户名输入有误!");
			//必须写return语句,不然校验没起到任何作用
			return INPUT;
		}
		System.out.println(user);
		return SUCCESS;
	}

 校验的代码写在execute方法中,必须返回input字符串,否则不起什么作用。除了这种写法外,也可以把校验的代码写在validate方法中,这样不需返回值也可以达到相同的作用

	@Override
	public void validate() {
		if (user.getName() == null || "".equals(user.getName())) {
			// 向jsp的struts标签提示信息
			this.addFieldError("userNameError", "用户名输入有误!");
		}
	}

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics