zoukankan      html  css  js  c++  java
  • struts框架

    1.struts框架主要是将请求和结果分离,避免了写原生的httpRequest,简化了开发难度。

    2.原理是通过在web.xml中配置过滤器filter,将url拦截到struts.xml中进行解析,通过package,action的名字组合,找到对应的action和method来处理。最后result根据return来跳转。

    redirectAction为跳到另一个action。

    3.action必须实现execute方法,建议继承自ActionSupport类,该类实现了execute方法返回SUCCESS

    SUCCESS是struts中一个常量,值为"success",除此还有NONE,ERROR,INPUT,LOGIN,定义位于Action接口,该接口除此外包含execute方法。

    为什么继承ActionSupport比较好呢,因为有一些现成的方法可以用,哪些方法呢,比如数据校验setFieldErrors,ActionSupport实现了一堆接口,Action, Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable。

    4.struts核心包中需要关注的:

    (1)org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter 该文件是url被拦截后的处理文件,如何处理的

    (2)struts默认的配置文件/struts-default.xml,配置了基本的包struts-default,里面包含一堆,版本2.5中为了增强安全性,通配符允许匹配的关键词在这里面。

    <global-allowed-methods>execute,input,back,cancel,browse,save,delete,list,index</global-allowed-methods>

    (3)struts默认属性文件/org/apache/struts2/default.properties包含action允许的后缀,默认的编码,开发者模式,如需修改可在struts.xml中进行。

    <constant name="struts.devMode" value="true"></constant>

    (4)struts标签库文件/META-INF/struts-tags.tld,使用时在页面引入<%@taglib uri="/struts-tags" prefix="s"%>,这里uri的名称是在标签库文件中配置的。

    5.接收参数有三种方式(1)变量接收:action中写变量,变量的getset方法;(2)domainModel接收:页面输入框名称为user.name,action中声明model对象,对象的getset方法,获取值用user.getName()。(3)实现modelDriven接口:action中声明对象并new,不需要getset,实现接口的getModel方法,返回对象,获取用user.getName(),个人认为这种方式最优雅。

    6.数据校验,在action的方法中this.addFieldError("errorMsg","用户名或密码错误!");然后在页面用<s:property value="fieldErrors.errorMsg[0]"/>

    <s:debug></s:debug>用来查看值栈

    7.获取session两种方式:(1)session = ActionContext.getContext().getSession();(2)实现sessionAware接口

    8.result的类型:(1)如果不指定type,默认是dispatcher,dispatcher是服务器跳转到结果页面上去,服务器端跳转页面,url不变;(2)redirect,客户端跳转到页面;

    (3)chain,forward到另一个action;(4)redirectAction,客户端跳到action

  • 相关阅读:
    vue视图刷新失效
    vue移动端框架搭建
    猜单词--莫妮卡的新游戏
    快速上手python的坑
    江西育华学校初三下月考英语试卷 2020.3
    Title
    什么是vuex? 什么场景下适用vuex?
    左右模块滑动
    vue-router的几种实例方法以及参数传递
    完整的 vue-router 导航解析流程
  • 原文地址:https://www.cnblogs.com/froid/p/6922773.html
Copyright © 2011-2022 走看看