struts2学习笔记十九(第19讲.Struts2深入探索 续)

本文介绍Struts2框架中的模块化开发方法及模型驱动的实现方式,并通过实例展示了如何防止表单重复提交,确保应用程序的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Struts2应用开发详解 第十九讲 Struts2 深入探索 续

一、分模块开发

在src目录下创建struts1.xml和struts2.xml文件,然后在struts.xml文件中引用这两个文件:

在struts.xml文件中添加include属性:

<include file="struts1.xml"></include>
<include file="struts2.xml"></include>

  然后删掉这两个文件。

二、模型驱动

还是以注册功能为例。

1、在com.test.bean下创建一个javabean:User.java

package com.test.bean;

import java.util.Date;

public class User {
	
	private String username;
	
	private String password;
	
	private String repassword;
	
	private int age;
	
	private Date birthday;
	
	private Date graduation;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getRepassword() {
		return repassword;
	}

	public void setRepassword(String repassword) {
		this.repassword = repassword;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public Date getGraduation() {
		return graduation;
	}

	public void setGraduation(Date graduation) {
		this.graduation = graduation;
	}
}

 

2、在com.test.action文件夹下创建action类文件:RegisterAction2.java

package com.test.action;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.Preparable;
import com.test.bean.*;
public class RegisterAction2 extends ActionSupport implements ModelDriven<User>,Preparable{
	
	private User user = new User();
	
	public User getModel() {
		
		return user;
	}
	
	public void prepare() throws Exception {
		System.out.println("Hello World!!!");//此方法最先执行
	}
	
	@Override
	public String execute() throws Exception {
		
		return SUCCESS;
	}
}

主要介绍ModelDriven的使用方法

 

3、验证时注意修改struts.xml中action的请求:

<action name="register" class="com.test.action.RegisterAction2">
           <result name="success">/success.jsp</result>
           <result name="input">/register2.jsp</result>
</action>

 验证结果先输出Hello world!!!

 

三、 表单重复提交

 还是以注册功能为例。

1、在register2.jsp页面form表单中添加标签:

<s:token name="hello"></s:token>

 

 2、struts.xml文件里添加:

<result name="invalid.token">/register2.jsp</result>
   <interceptor-ref name="token"></interceptor-ref>
   <interceptor-ref name="defaultStack"></interceptor-ref>

如下:

<action name="register" class="com.test.action.RegisterAction" method="test">
			<result name="success">/success.jsp</result>
			<result name="input">/register2.jsp</result>
			<result name="invalid.token">/register2.jsp</result>
			
			<interceptor-ref name="token"></interceptor-ref>
			<interceptor-ref name="defaultStack"></interceptor-ref>

 

 验证结果:



 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值