struts笔记

一.struts2工作原理


二.struts2核心文件

web.xml文件:

任何MVC都要与web应用整合,借助于web.xml。只有配置在web.xml文件中的servlet才会被应用加载。

struts.xml文件:
Action映射,以及Action包含的Result定义,包含:
1.全局属性
2.用户请求和响应Action之间的对应关系
3.Action可能用到的参数和返回结果
4.各种拦截器的配置

struts.properties文件,
struts2全局属性文件,自动加载,包含很多key-value对,但该文件完全可以用constant元素配置于struts.xml文件中。

三.访问Servlet API
3种办法:
1.Action Context
2.实现XXXAware接口
3.ServletActionContext
例如第二种实现:
public class SuperAction extends ActionSupport implements ServletContextAware,ServletRequestAware,ServletResponseAware{

	

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;//什么用?????
	protected HttpServletResponse response;//响应对象
	protected HttpServletRequest request;//请求对象
	protected  ServletContext application;//全局对象
	protected  HttpSession session;//会话对象
	@Override
	public void setServletResponse(HttpServletResponse response) {
		this.response=response;
	}

	@Override
	public void setServletRequest(HttpServletRequest request) {
		this.request=request;
		this.session=this.request.getSession();
	}

	@Override
	public void setServletContext(ServletContext application) {
		this.application=application;
	}
}
四.动态方法调用(解决一个Action对应多个请求的处理)
3种方法:
1.指定method属性
2.感叹号方式(不推荐)
3.通配符方式
这里以第三种为实例:
 <package name="users" namespace="/users" extends="default">
		
		<action name="*_*" class="action.{1}Action" method="{2}">
		<result name="login_success">/users/Users_login_success.jsp</result>
		<result name="login_false">/users/Users_login.jsp</result>
		<result name="logout_success">/users/Users_login.jsp</result>
		<result name="input">/users/Users_login.jsp</result><!-- validate返回的结果 -->
		</action>
	</package> 

*_*有2个通配符,例如请求的是Students_login.Action,那么对应的类(class)为:action.StudentsAction,对应的方法为login。


五.接收参数
3种方法:
1.使用Action的属性接收。 类似于:name
2.使用Domain.model接收. 类似于:user.name
3.实现modelDriven接收 
以3为例:
接收数据的java文件:
public class StudentsAction extends SuperAction implements ModelDriven<students> {

	private students student=new students();//一定要初始化
	private static final long serialVersionUID = 7524786985348374469L;
	
	@Override
	public students getModel() {
		return this.student;
	}
}
发送数据的JSP文件:
<form name="addForm" action="<%=path%>/students/Students_add.action" method="post">
<table width="500" >
  <tr>
    <td width="30%">姓名:</td>
    <td><input type="text" name="sname" /></td>
  </tr><table>
JSP中,name对应Action中的student的sname,符合就接收。


六.拦截器
留白...





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值