zoukankan      html  css  js  c++  java
  • struts2-note2

    1、struts2 action对象为每一个请求产生一个实例,没有线程安全问题;

    2、struts2 Action三种实现方式
    (1)、具有public String execute()方法的普通类
    (2)、实现Action接口
    (3)、继承ActionSupport类(推荐)

    3、Action接受表单数据
    (1)、Action类的属性接受用户输入(用户输入页面属性和Action中的属性保持一致,并提供get和set方法)
    (2)、利用领域对象接受用户输入(推荐)(以对象的形式来接受和处理数据)
    (3)、使用ModelDriven模式接受用户输入
    前端页面:依旧以属性的形式出现
    Action中:
    实现ModelDriven<User>接口,重写其方法 getModel;
    定义领域对象,并初始化领域对象,
    如:private User user = new User(); 此时无需要提供get和set方法;
    最后,显示的结果页面同用户输入的页面属性保持一致!!

    4、struts2 主要配置文件加载次序
    由上到下,依次为:
    struts-default.xml
    struts-plugin.xml -- struts2 的一些插件
    struts.xml
    struts.properties -- 用户自定义的,用于修改default.properties文件属性
    web.xml
    注意:若前后.xml文件中有相同的属性常量,则后面加载的文件常量将会将前面的加载的常量覆盖掉。

    5、struts2 修改 default.properties文件中的属性
    1、在 src目录下创建struts.properties文件
    2、在此文件中覆盖掉default.properties文件中的key=value值
    eg: 修改请求的后缀名.action --> .do
    则只需要在struts.properties文件中添加 struts.action.extension=do 即可;

    6、struts2属性说明
    6.1 使用constant 来修改default.prooperties中的属性值
    eg: 修改是否处于开发模式下
    <constant name="struts.devMode" value="true"></constant>

    6.2 struts2 乱码问题原由:由于页面编码和struts2的属性文件里的编码不一致导致;
    解决:前端页面和struts2的属性文件统一全部设定为"utf-8"编码;

    6.3 Package -- 解决Action重名,方便继承
    namespace -- 名空间 区分:在form表单发送请求时,对于相同的action时,前面加namespace来加以区分相同的action不同的请求的处理;

    6.4 定义公共包
    <struts>
    <!-- 定义父包 :定义公共的结果集-->
    <package name="default" namespace="" extends="struts-default">
    <global-results>
    <result name="success">/login_success.jsp</result>
    <result name="failure">/login_failure.jsp</result>
    </global-results>
    </package>

    <package name="user" extends="default" namespace="/user">
    <action name="login" class="net.nw.action.LoginAction2">
    </action>
    </package>
    <package name="admin" extends="default" namespace="/admin">
    <action name="login" class="net.nw.action.AdminAction">
    <result name="success">/admin/admin.jsp</result>
    </action>
    </package>
    </struts>

    6.5
    注意:在struts2项目中,页面上尽量不做href链接的跳转工作,全部使用struts2中的action 动作来实现跳转功能;
    如何来实现呢??
    1、前端页面请求依旧 eg: /struts_demo5/exit.do
    2、在struts.xml中配置公共的<action>跳转,此时action为:
    <!-- 定义父包 :定义公共的结果集-->
    <package name="default" namespace="" extends="struts-default">
    <global-results>
    <result name="success">/login_success.jsp</result>
    <result name="failure">/login_failure.jsp</result>
    </global-results>
    <action name="exit">
    <result>/login.jsp</result>
    </action>
    </package>
    action 只有name,而没有class属性,起到跳转的作用!

    6.6 如何使用struts2自带的错误显示信息标签进行错误信息的显示??
    第一:Action 中 必须 继承ActionSupport类(推荐)
    然后利用在execute()方法中编写:在当前的ActionContext中添加错误信息;
    this.addFieldError("login_error", "用户名或密码错误!");
    第二:页面显示时,只需要:
    导入struts2的标签引用: <%@ taglib uri="/struts-tags" prefix="s"%>
    进行错误信息的显示:<s:fielderror value="login_error" theme="simple"></s:fielderror>

  • 相关阅读:
    高级指令(三)
    高级指令(二)
    高级指令(一)
    高级指令(四)
    基础指令(二)
    02使用Maven构建Java项目
    03初识Maven核心概念(上)
    01Maven概述与安装
    关于sizeof与#pragma pack 以及网络上关于字节对齐的一点感想
    学习之"setjmp和longjmp函数"
  • 原文地址:https://www.cnblogs.com/pan1308/p/3343319.html
Copyright © 2011-2022 走看看