.Net转Java自学之路—Struts2框架篇一(入门)
概述:
1、Struts2框架应用Java EE三层结构中的Web层框架。
2、Struts2框架是Struts1和webwork基础之上发展的全新的框架。
3、Web层常用的框架:Struts2、SpringMVC
入门案例:
1、导入jar包。
2、创建action:每次访问action时,默认执行名称为execute()方法。
3、创建Struts2核心配置文件
》核心配置文件的名称和位置都是固定的。位置:src下。名称:struts.xml
》引入dtd约束。
》action配置:
<struts><package name="" extends="struts-default" namespace="/">
<action name="访问名称" class="配置类的全路径">
<!--配置方法的返回值到页面-->
<result name="返回值">/xxx.jsp</result>
</action>
</package>
</struts>
》配置Struts2过滤器。在web.xml中进行配置:
<filter><filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFIlter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filt-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
底层执行过程:
地址发送请求后,进入过滤器,过滤器实现功能(过滤器在服务器启动时创建)。
1、过滤器获取请求路径,得到路径中的值。
2、然后再src下找到struts.xml,使用dom4j解析。得到xml文件中的内容;拿到的值到xml文件中找action标签,匹配name属性值是否一样。
3、一样后,找到name属性所在的action标签中的另一个属性class属性,得到action的全路径,使用反射实现功能。
Class clazz=Class.forName("action的全路径");//得到名称时execute的方法
Method mt=clazz.getMethod("execut");
//执行
Object obj=mt.invoke();
4、得到action方法的返回值。
》在struts.xml文件中,找到action标签中的result标签,匹配该标签的name属性值是否一样;一样,则跳转配置的页面中。
相关配置:
1、名称和位置时固定的。
2、配置文件主要有三个标签package、action、result标签中的属性。
package:
1、类似于包,区分不同的action,要配置action,必须首先写package标签,在package中才能配置action 。
2、package标签属性:
name:name属性的值与功能本身没有关系,在一个配置文件中可以有多个package标签,但name属性值不能相同。
extends:表示一种继承的关系,该属性值固定:struts-default 。定义该属性后,在package中配置的类才具有action功能。
namespace:命名空间.该属性值和action的name属性值构成访问路径。
action:
该标签配置action访问路径。该标签含有三个属性:
name:namespace属性值和action的name属性值构成访问路径。在package标签中写多个action标签,但action的name属性值不能相同。
class:action全路径。
method:该属性可以让action中的多个方法进行执行。
result:
1、根据action的方法返回值,配置到不同路径中。
2、包含两个属性:name、type 。
name:和方法返回值一样。
type:配置如何到路径中(转发或重定向)。默认值:转发。
常量配置:
1、默认常量位置:all.jar >> org.apache.struts2 >> static >> default.properties
2、修改struts2默认常量值:常用方式:在struts.xml中进行配置
<constant name="struts.i18n.encoding" value="utf-8"></constant>
还有俩种方式:
a、在src下创建struts.properties,进行修改。
b、在web.xml进行配置。
3、最常用常量:struts.i18n.encoding=UTF-8
》表单提交数据到action中,在action中可以获取到表单提交数据。
》表单提交数据有中文,解决有乱码问题:post提交直接设置编码;get提交做编码转换
》如果在action获取表单通过post方式提交中文,中文乱码问题已帮解决。但get提交的中文还需要手动处理。
分模块开发:单独写配置文件,然后引入到核心配置文件中。
<include file="cn/text/action/xxx.xml"></include>
Action三种编写方式:
1、创建普通类。该类不继承任何类,不实现任何接口。
2、创建类,实现接口Action 。
3、创建类,继承类ActionSupport 。
访问action的方法的三种实现方式:
1、使用action标签的method属性,属性值中写执行的action方法。
》使用method配置的情况缺陷:action的每个方法都需要配置,若action中有多个方法,需要配置多个action 。
2、使用通配符方式实现:
》在action标签中name属性,name属性值中用”*“号。*:表示匹配任意内容。
》method属性中录入*的值:{1}
3、动态访问实现。
》如果action中的方法有返回值,在配置文件中没有配置,出现错误。
》如果action中的方法有返回值,类型必须是String 。
》action中的方法可以没有返回值,那么在result中就不需要配置。没有返回值的俩种写法:把方法写成void 或 把返回值写成"none"。
以上是 .Net转Java自学之路—Struts2框架篇一(入门) 的全部内容, 来源链接: utcz.com/z/394697.html