struts1的总结

一,所有视图层.do的请求都被struts的中央控制器actionservlet截获到,actionservlet会根据struts_config
.xml中的配置,把请求分发给相应的action进行处理,调用action中的execute方法,这个方法会返回给
actionservlet一个actionforward对象,actionservlet根据actionforward进行统一的跳转!!这里还有一些关于怎么读取配置文件的东西,可以看看前面的代码!
二,struts的搭建,
  第一步,导入相应的架包,第二步,导入相应的配置文件,第三步,在web.xml文件中写入相应的文件,这个文件的写法都是一样的,这里我把代码贴出来,以方便以后的学习!
  
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name></display-name>    
  
  <servlet>
        <servlet-name>action</servlet-name>
     <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <load-on-startup>2</load-on-startup>
      </servlet>
     
     <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
  
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

以上就是关于在搭建过程中的写法,以后复习的时候要注意!

三,action的写法
  第一步,写一个类继承dispathaction,第二步,重写里面的execute方法!
四,actionMapping
  就是一对action标签!
<action path="/changelan"
                type="com.daijianwei.action.LoginAction">
        <forward name="success" path="/login.jsp"></forward>
        </action>
五,actionform(vo)设计膨胀dynaActionform
  在这里需要注意的问题,在dynaActionform里面是用Map进行存储的,所以在拿出来的时候会提供两个方法,一个是getString()  第二个是getObject()第二个方法要进行类型的转换!这就是需要注意的地方!
 
六,actionform会自动保存在request或者session中
  默认的是保存的是在session中,如果你需要拿出来的话,记住要写.map.username,另外你想保存在request中的话,只要在配置文件中加上scope="request",就可以了!
 
七,dispathaction 配置文件的parameter
  需要注意的是,parameter中的command是可以写上不同的方法的!只要在配置文件中写上,parameter="command" 这样的一句话,就可以把所有关于这个模块的方法都写到一个action里面去!很是方便!
 
八,动态的actionforward  分页 的时候用到
  只要在new 出来的时候你再setpath时,才可以有效果!如果直接的setpath的时,就有可能报错。这一点是非常需要注意的地方!
 
九,java的国际化,locale ResourceBundle MessageForm
  这三个属性,前两个是在java.util包底下的,另外一个是在java.text底下的!是在java的国际化,locale是用于在语言和国家的填充,ResourceBundle是用于打印出来的!
MessageForm是用于栈位符的填充的!其中的代码,可以去看看上篇的日志,不在啰嗦!
 
十,国际化资源文件,struts_config.xml中告诉struts basename
  <bean:message key="" args0="">在struts_config.xml中要告诉struts我的国际化资源文件的名字!其中的代码如下!
  <message-resources parameter="MessageResource"></message-resources>
  
十一,如何在程序的运行过程中更改locale,struts中将locale放在session中,action中有this.setlocale
  更改struts中的locale要用到判断来,还可以将构造方法来进行更改,更改后的结果放在session中,其中的this.setlocale(request,locale)其中的request是需要拿出session的!所以就要用到request! 
(request,locale);
 
十二,动态的国际化消息文本的处理
      在action中读取国际化消息
      ActionMessages和actionErrors都是容器,仿的都是actionMessage(一条国际化消息
      new ActionMessage(key,args)
      在页面中获取<html:messages> <html:errors/>
十三,编程式的异常:每个异常都要写自己的异常类,每种异常读取的国际化消息也不一样<exception key=""
path="" type="">
有很多的异常类,代码看起来很多!
十四,个性化的异常:只有一个异常类,构造方法中的msg就是错误的提示信息
<global-exception>
<exception type="com.daijianwei.exception.GlobalException" key="error"
path=""></exception>
</global-exception>
读取国际化消息文本都是一样的error={0}只能是固定的文本,不能做国际化,但是只有一个类,代码非常的简
 
洁!
原文地址:https://www.cnblogs.com/daijianwei/p/3123388.html