好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Struts2_struts.xml写法和用法例子_html/css_WEB-ITnose


"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">








18个字母 -->







/Hello.jsp






在web.xml中,通过


来指定默认主页
但是也可以去调用,通过struts2指定
-->

/default.jsp



F:\Step06_JavaEE\_01_Strust2\struts-2.3.24-all\struts-2.3.24\src\core\src\main\java\org\apache\struts2\dispatcher\mapper
这个类里面有相关源码
-->
我这里只管namespace,不管的别的,和action无关
-->



/404.jsp









/404.jsp







action调用add方法添加用户
调用第一种action方法
method="add">

/user_add_success.jsp




URL动态传参调用相关的方法执行
调用第二种action方法,user定位到类,!后面跟方法名


/user_add_success.jsp








添加学生
删除学生

不过,一定要遵守"约定优于配置"的原则

method="{1}">

/Student{1}_success.jsp


两个**号匹配一切,------------------------------


不过,一定要遵守"约定优于配置"的原则
添加老师
删除老师
添加课程
删除课程

method="{2}">

/{1}_{2}_success.jsp





添加用户

ModelDriven传值.默认是实现ModelDriven接口,实现getModel方法,
然后在uri传值中,就可以不用在封装数据,会自动封装到实体类中,这个要在类中实例化实体类对象
添加用户//封装到对象里面了,对象是谁new的?底层.....
--------------------------


method="{2}">

/{1}_{2}_success.jsp





地址栏不显示要跳转的**.jsp 是同一个栈,是同一个线程内局部变量





/r1.jsp


地址栏显示**.jsp 就是跳转页面,没有经过action


浏览器端的jsp
-->
/r2.jsp


链式跳转,chain指定的是r1 意思是跳转到另一个action的name为r1的那个跳转页面,再由r1action 跳转到指定页面,地址栏不会显示**,jsp 可以跳转到action中,也可以直接跳转到一个jsp页面,但是action可以传参,但是jsp页面不可以传参 action的内容保存在valuestack中 jsp中属性在actioncontext中保存




r1
/方法名
/包名
-->


先跳转到action的name为r2的,再有那个action跳转到指定页面,地址栏显示**.jsp
可以跳转到action中,也可以直接跳转到一个jsp页面,但是action可以传参,但是jsp页面不可以传参 action的内容保存在valuestack中 jsp中属性在actioncontext中保存



r2





-->


/admin.jsp





实体类中这样写
@Override
public String execute() throws Exception {
if(type == 1) r="/user_success.jsp";
else if (type == 2) r="/user_error.jsp";
return "success";
}

-->



${r}







/user_success.jsp?t=${type}

jsp中写法 :
//访问action(valuestack值栈)中的t属性,(访问不到)因为上面跳转的是jsp,没有action,就没有t属性
//访问jsp中(actioncontext(页面所有信息,相当于堆内存))的t属性,就能访问到

查看更多关于Struts2_struts.xml写法和用法例子_html/css_WEB-ITnose的详细内容...

  阅读:34次