Sturts2 初学学习笔记 4

一、本节知识点

二、新建web.xml和以前一样

三、新建com.eatok.form.UserBea.java

package com.etoak.form;

public class UserBean {
	//封装表单项
	private String myname;
	
	//封装一个非表单项,此表单项不是用户提交的而是开发者自己设计的
	private String tip;

	public String getMyname() {
		return myname;
	}

	public void setMyname(String myname) {
		this.myname = myname;
	}

	public String getTip() {
		return tip;
	}

	public void setTip(String tip) {
		this.tip = tip;
	}

}

四、新建com.etoak.acion.LoginAction.java

package com.etoak.action;

import com.etoak.form.UserBean;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

/*
 * 实现ModelDriven接口
 * 表示可以使用一个专门的类来封装表单项甚至非表单项
 * */
public class LoginAction extends ActionSupport
implements ModelDriven<UserBean>{
	
	//此对象名对应页面
	/*
	 * 	<s:textfield label="姓名" 
	 * name="对应这里.myname">
	 * 
	 * */
	UserBean model = new UserBean();

	@Override
	public UserBean getModel() {
		// TODO Auto-generated method stub
		return model;
	}

	@Override
	public String execute() throws Exception {
	
		if(this.getModel().getMyname()
				.trim().equals("penny")){
			this.getModel().setTip("欢迎您回来");
			return this.SUCCESS;
		}else{
			this.getModel().setTip("抱歉数据库中查无此人");
			return this.ERROR;
		}
		
	}

	@Override
	public void validate() {
		if(this.getModel().getMyname().trim().length()<4){
			this.addFieldError("model.myname","用户名不能小于4位");
		}
	}
	
}

五、新建struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
	
<struts>
	<package name="suibian" extends="struts-default">
		<action name="login" class="com.etoak.action.LoginAction">
			<result>/suc.jsp</result>
			<result name="error">/err.jsp</result>
			<result name="input">/index.jsp</result>
		</action>
	</package>
</struts>

六、新建jsp页面

1,新建index.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>模型驱动</title>
    <%--
    		模型驱动就是在struts2中继续使用类似struts1中
    		静态ActionForm封装表单项的方式进行开发的一种
    		方式,专门设置一个类来封装表单项,这种开发方式
    		对于大型表单项来说非常方便,此功能由ModelDriven
    		拦截器提供
    --%>
  </head>
  <body>
	<s:form action="login">
		<s:textfield label="姓名" name="model.myname"></s:textfield>
		<s:submit value="注册"></s:submit>
	</s:form>
  </body>
</html>

2,新建suc.jsp成功页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
  </head>
  <body>
	<%--
		拿取表单项和非表单项
		当我们使用struts2模型驱动时,
		不管是表单项还是非表单项,则全部被框架
		封装进HttpServletRequest范围和
		struts2独有的范围值栈中		
	--%>	
	<s:property value="#request.model.myname" />
	<%--
		值栈取值不需要书写任何#范围.****
	--%>
	<s:property value="model.myname" />
	<hr>
	<br>
	<%-- 拿取非表单项 --%>
	<s:property value="#request.model.tip" />
	<s:property value="model.tip" />
	<hr>
	<%--
		简略写法
		拿取值栈
	--%>
	<s:property value="myname" />
	<s:property value="tip" />
  </body>
</html>

3,新建err.jsp失败页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
  </head>
  <body>
	<%--
		拿取表单项和非表单项
		当我们使用struts2模型驱动时,
		不管是表单项还是非表单项,则全部被框架
		封装进HttpServletRequest范围和
		struts2独有的范围值栈中		
	--%>	
	<s:property value="#request.model.myname" />
	<%--
		值栈取值不需要书写任何#范围.****
	--%>
	<s:property value="model.myname" />
	<hr>
	<br>
	<%-- 拿取非表单项 --%>
	<s:property value="#request.model.tip" />
	<s:property value="model.tip" />
	<hr>
	<%--
		简略写法
		拿取值栈
	--%>
	<s:property value="myname" />
	<s:property value="tip" />
  </body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值