我是靠谱客的博主 沉静冷风,最近开发中收集的这篇文章主要介绍SSH中struts2的使用第一个struts程序action 动作类的三种写法Action 动作类的三种访问方式常用的视图类型struts2 中使用 Servlet 的 API,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
struts2
- 第一个struts程序
- 创建web.xml
- 创建structs2.xml
- 创建启动类 HelloAction.java
- 引入log4j2.xml文件
- 导入相关structs的jar包
- struts运行流程
- action 动作类的三种写法
- 不实现接口和继承类
- 实现 Action 接口
- 继承 ActionSupport 类(推荐使用)
- Action 动作类的三种访问方式
- 传统的访问方式
- 通配符的访问方式
- 动态方法调用的访问方式
- 常用的视图类型
- struts2 中使用 Servlet 的 API
第一个struts程序
创建web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>ch01_01_struts2_hello</display-name>
<!-- 启动struts2的程序 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
创建structs2.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="base" extends="struts-default" namespace="/">
<action name="hello" class="cn.sm1234.action.HelloAction" method="hello">
<result name="success">/succ.jsp</result>
</action>
</package>
</struts>
创建启动类 HelloAction.java
package cn.sm1234.action;
public class HelloAction {
public String hello(){
System.out.println("进入struts2的Action类");
return "success";
}
}
引入log4j2.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{ABSOLUTE} %5p %c{1}:%L - %m%n" />
</Console>
<File name="LogFile" filename="c:/mylog.log">
<PatternLayout pattern="%d{ABSOLUTE} %5p %c{1}:%L - %m%n" />
</File>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console" />
<!-- <AppenderRef ref="LogFile" /> -->
</Root>
</Loggers>
</Configuration>
导入相关structs的jar包
可以在struts官网找jar包
struts运行流程
action 动作类的三种写法
不实现接口和继承类
上面的例子就是不实现接口和继承
实现 Action 接口
好处:
1)提供默认的execute方法,让Action类更加标准
2)提供5个开发中常用的视图常量
Demo2Action.java
package cn.sm1234.action;
import com.opensymphony.xwork2.Action;
public class Demo2Action implements Action{
//execute:是struts2的Action类的默认方法
@Override
public String execute() throws Exception {
System.out.println("Action第二种写法:实现Action接口");
return SUCCESS;
}
}
然后修改 struts2.xml
action中不需要写 method
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="base" extends="struts-default" namespace="/">
<action name="demo1" class="cn.sm1234.action.Demo1Action" method="hello">
<result name="success">/succ.jsp</result>
</action>
<action name="demo2" class="cn.sm1234.action.Demo2Action">
<result name="success">/succ.jsp</result>
</action>
<action name="demo3" class="cn.sm1234.action.Demo3Action">
<result name="success">/succ.jsp</result>
</action>
</package>
</struts>
继承 ActionSupport 类(推荐使用)
好处:
1)有了 Action 接口的所有好处
2) 还拥有其他功能接口,例如国际化,表单验证等
package cn.sm1234.action;
import com.opensymphony.xwork2.ActionSupport;
public class Demo3Action extends ActionSupport{
@Override
public String execute() throws Exception {
System.out.println("第三种写法:继承ActionSupport类");
return SUCCESS;
}
}
struts.xml的配置同上
Action 动作类的三种访问方式
传统的访问方式
struts文件的一个action对应java文件的一个方法
特点:
1)可读性强
2)配置繁琐
struts.xml
<package name="demo1" extends="struts-default" namespace="/demo1">
<action name="save" class="cn.sm1234.action.Demo1Action" method="save">
<result>/succ.jsp</result>
</action>
<action name="update" class="cn.sm1234.action.Demo1Action" method="update">
<result>/succ.jsp</result>
</action>
</package>
demo1action.java
package cn.sm1234.action;
import com.opensymphony.xwork2.ActionSupport;
public class Demo1Action extends ActionSupport{
public String save(){
System.out.println("Demo1Action的save方法");
return SUCCESS;
}
public String update(){
System.out.println("Demo1Action的update方法");
return SUCCESS;
}
}
通配符的访问方式
特点:
1)可读性差
2)配置比较简单
struts.xml
<package name="demo2" extends="struts-default" namespace="/demo2">
<!-- 用户访问的路径:
/demo2/demo2_save.action
/demo2/demo2_update.action
-->
<action name="demo2_*" class="cn.sm1234.action.Demo2Action" method="{1}">
<result>/succ.jsp</result>
</action>
</package>
demo2action.java
package cn.sm1234.action;
import com.opensymphony.xwork2.ActionSupport;
public class Demo2Action extends ActionSupport{
public String save(){
System.out.println("Demo2Action的save方法");
return SUCCESS;
}
public String delete(){
System.out.println("Demo2Action的delete方法");
return SUCCESS;
}
}
动态方法调用的访问方式
动态方法调用机制默认关闭的!
如果需要使用的时候,要通过常量进行开启:
<package name="demo3" extends="struts-default" namespace="/demo3">
<!-- 用户访问的路径:
demo3/demo3!save.action
demo3/demo3!delete.action
-->
<action name="demo3" class="cn.sm1234.action.Demo3Action">
<result>/succ.jsp</result>
</action>
</package>
常用的视图类型
dispathcer: 转发到页面,默认值
redirect: 重定向到页面
redirectAction:重定向到 Action
struts2 中使用 Servlet 的 API
最后
以上就是沉静冷风为你收集整理的SSH中struts2的使用第一个struts程序action 动作类的三种写法Action 动作类的三种访问方式常用的视图类型struts2 中使用 Servlet 的 API的全部内容,希望文章能够帮你解决SSH中struts2的使用第一个struts程序action 动作类的三种写法Action 动作类的三种访问方式常用的视图类型struts2 中使用 Servlet 的 API所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复