原文地址:http://note.youdao.com/share/?id=14765868a53ed708256c036664af0cac&type=note
DMI
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