原文地址:http://note.youdao.com/share/?id=14765868a53ed708256c036664af0cac&type=note
DMI
struts.xml

class

jsp文件为展示文件,在这里不做展示
通配符(将配置量降到最低)

采用/Student*表示
下面result方法中,{1}表示第一个星号,{2}表示第二个星号,对他们的符号进行通配配置
class方法

注意其匹配会匹配最精确的,很多通配符放在一起的时候,按照时间先后进行配置
Action中接收参数
class

通过get和set方法设置成员变量的值
浏览器访问想doget方法一样 在网址后面加入参数,set后面的名字和?后面的
名字一样 ,例如setName和name中,set后面的Name和name的名字一样

DonmainModel接收参数
调用方法

user.name=a&user.age=9
调用类

预模型

dto database transference object
存在预模型与实际输入参数不符合的现象发生,例如在注册界面当中,user class会存储
username和password,但是在实际的存储当中出现comfimpassword,则先使用userDto
进行存储,然后在dto中拿出username和password,是得输入和存储能够一致。
ModelDriven传递参数

平时不常用,重点是放在MVC的概念,
调用过程

Struts2重点放在C上面,主要是写Action
接收参数出现中文(struts-2.3.24.1中失误)
在struts.xml中进行配置

struts2中的文档中的值在

和参考文档
在2.1.6中有bug,在struts.xml中即使是配置也不能解决,如何解决?
在web.xml中更改

简单数据验证(验证上出现问题)
##读程序的方法,顺着线往下读##

在if(name==null...)...中进行判断,对前台传递错误信息,使用this.addFieldError(
"name","message");
jsp文件取出错误信息的方法

调用标签库<s:fielderror fieldName="name" theme="simple">
注意提前要引入标签库:<%@ taglib uri="/struts-tags" prefix="s"%>
写入<s:debug></s:debug>在页面中会出现debug链接
取debug属性:<s:property value="errors.name[0]"/>,使用时候是将错误的信息放到
栈当中,然后在栈当中取出其相应的错误信息,errors.name[0]为ognl表达式
访问Web元素
取得request,session,application
第一种方式
使用JavaScript来提交数据

获取数据

注意是Map类型,*request中就是StackContext中的值
前台访问(s:property不能访问)

前台访问可以使用JSP语法或者使用struts的标签进行访问
struts:#request.r1,使用#进行访问
第二种方法(最常用)
DI:dipendency injection
IoC:inverse of control

依赖注入,request依赖于别人注入给自己,由自己控制变成别人控制,就是
由方式一转换成方式二
方式三

方式四

模块包含

自己写自己模块,不影响其他人写的模块
默认Action
defaultAction

只写项目名,在不访问下级文件时

写入default-action-ref时会直接访问默认的action
request的配置


1:服务器跳转,跳转到页面,不能是action

2:客户端跳转,跳转到视图
在别的包当中:


3:跳转到action

4:跳转到action
r4跳转到r2,然后访问r2.jsp
5~10:一般都用不到
全局链接request

package内公用
extends从另外一个包中继承,工作中的extends的作用是通用的页面放
父类,使其返回的不用重复定义

Dynamic result动态返回
struts.xml

java类

r值动态确定,采用${r}动态读取stackContext的值

向结果传参数
struts.xml配置

t=${type}指明t指代一个参数
jsp文件取值

采用下面from actioncontext中

情况

Result总结
1. 常用四种类型:
a) dispatcher(默认)
b) redirect
c) chain
d) redirectAction
2. 全局结果集
a) global-results | extends
3. 动态结果(了解)
a) 在action中保存一个属性,存储具体的结果location
4. 传递参数
a) 客户端跳转才需要传递
b) ${}表达式(不是EL)
OGNL