Chinaunix首页 | 论坛 | 博客
  • 博客访问: 828121
  • 博文数量: 190
  • 博客积分: 2991
  • 博客等级: 少校
  • 技术积分: 2400
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-24 18:11
文章分类

全部博文(190)

文章存档

2015年(3)

2014年(1)

2013年(65)

2012年(121)

我的朋友

分类: Java

2012-12-25 10:29:51

/02_struts分发请求的过程与相关配置
按照mvc模式设计出的web层框架,其实就是一个大大的servlet,
我们可以在web.xml文件中将符合某种特征所有请求交给这个Servlet处理,
这个servlet再参照一个配置文件(struts-config.xml)将各个请求分配给不同的action去处理
根据struts提供的例子

  1. <form id="LogonForm" method="post" action="/struts-mailreader-1.3.10/SubmitLogon.do;  
  2. jsessionid=FAD709E61ABC01E37FBF31FDF3D6CAAA" onsubmit="return validateLogonForm(this);">  
  3.       

查看源代码后知道提交后交给/SubmitLogon.do。
在web.xml文件中查找/SubmitLogon.do没有找到,有通配符*.do

  1.   
  2.     <servlet>
  3.         <servlet-name>actionservlet-name>  
  4.         <servlet-class>org.apache.struts.action.ActionServletservlet-class>  
  5.         <init-param>  
  6.             <param-name>configparam-name>  
  7.             <param-value>/WEB-INF/struts-config.xmlparam-value>  
  8.         init-param>   
  9.         <load-on-startup>1load-on-startup>  
  10.    servlet>  
  11.   
  12.       
  13.     <servlet-mapping>  
  14.         <servlet-name>actionservlet-name>  
  15.         <url-pattern>*.dourl-pattern>  
  16.     servlet-mapping>  

action对应一个叫ActionServlet的类;
查询struts-config.xml中/SubmitLogon;不能加.do。后缀名可以改变

  1.   
  2.      <action  
  3.                path="/SubmitLogon"  
  4.                type="org.apache.struts.apps.mailreader.actions.LogonAction"  
  5.                name="LogonForm"  
  6.                scope="request"  
  7.                cancellable="true"  
  8.                validate="true"  
  9.                input="Logon">  
  10.            <exception  
  11.                    key="expired.password"  
  12.                    type="org.apache.struts.apps.mailreader.dao.ExpiredPasswordException"  
  13.                   path="/ChangePassword.do"/>  
  14.            <forward  
  15.                    name="Success"  
  16.                    path="/MainMenu.do"/>  
  17.        action>  

 

而注册页面的转到/SaveRegistration.do却找不到,有*号通配符防止膨胀
 
                input="Input"
                type="org.apache.struts.apps.mailreader.actions.{1}Action"
                name="{1}Form"
                scope="request">
           
                    name="Success"
                    path="/{1}.jsp"/>
           
                    name="Input"
                    path="/{1}.jsp"/>
            path="/Save*"
                extends="//BaseAction"
                parameter="Save"
                cancellable="true"
                validate="true">  //是否需要校验
           
                    name="Success"
                    path="/MainMenu.do"/>
 
03_struts封装请求参数的过程与相关配置
将参数封装成formbean对象(就是一个java类),这个类的每一个属性对应一个请求参数。Formbean有一个validata的方法

 

web开发网

阅读(797) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~