zoukankan      html  css  js  c++  java
  • 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}只能是固定的文本,不能做国际化,但是只有一个类,代码非常的简
     
    洁!
  • 相关阅读:
    如何解除任务管理器被禁用
    一、JavaScript概述
    001_html基本结构
    postman常见问题记录
    fidder工具使用
    SonarQube工具使用问题汇总
    业余书籍读后感
    jmater常见问题处理
    测试知识记录(更新中)
    HTTP协议
  • 原文地址:https://www.cnblogs.com/daijianwei/p/3123388.html
Copyright © 2011-2022 走看看