Struts2学习浅记

今天学习了struts2,做一些笔记

Struts2整合到spring容器的步骤:

1、在pom.xml里加入依赖

                <!-- struts2-core核心依赖 -->
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-core</artifactId>
			<version>2.5.13</version>
		</dependency>
		<!-- struts2注解依赖 -->
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-convention-plugin</artifactId>
			<version>2.5.13</version>
		</dependency>
		<!-- srping-struts2整合 -->
		<!-- struts2-spring-plugin -->
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-spring-plugin</artifactId>
			<version>2.5.13</version>
		</dependency>

  2、web.xml

<!-- web监听 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- 初始化Spring容器 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/configs/applicationContext.xml</param-value>
    </context-param>

    <!-- 配置struts过滤器,接管所有的请求 -->
    <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>

3、初始化Spring容器,加载spring核心配置文件application.xml,导入负责处理业务bean和持久化bean的配置,需要额外添加对controller层的action bean管理的支持。(将action bean交给spring容器管理)

<!-- 打开组件扫描controller,将action对象管理起来 -->
    <context:component-scan base-package="com.entor.rams.actions">
        <!-- 只对@Controller -->
        <context:include-filter type="annotation"
            expression="org.springframework.stereotype.Controller" />
    </context:component-scan>

4、struts2核心配置:struts.xml,负责处理controller层的action bean以及前端控制功能,声明action对象的管理交给spring容器。

<!-- 常量配置 -->
	<!-- 开发模式打开 -->
	<constant name="struts.devMode" value="true" />
	<!-- 声明action对象的管理交给spring容器 -->
	<constant name="struts.objectFactory" value="spring" />
	<!-- 通过Action的限制得到结果页面路径 -->
    <constant name="struts.convention.result.path" value="/WEB-INF/jsps/" />  

  如果需要准确一点,那就具体的配置

<!-- action配置:包,命名空间,action,result等等 -->
    <package name="zidingyide" extends="struts-default" namespace="/">
        <!-- name表示请求的url:/rams/user_* -->
        <!-- class表示请求的处理action对象 -->
        <!-- method表示处理请求的方法名,{1}与name中第一次出现的通配符关联 -->
        <action name="user_*" class="userAction" method="{1}">
            <!-- result表示响应的结果,此处响应webapp根目录下面的index.jsp页面 -->
            <result name="success">/index.jsp</result>
        </action>
    </package>

5、做好所有的配置之后,那就做一些简单的测试

新建一个userAction的类

@Controller
public class UserAction extends ActionSupport implements ModelDriven<User>, Serializable {

	private static final long serialVersionUID = 4831870202462134967L;
	private User user;

	public User getUser() {
		return user;
	}

	/**
	 * 实现模型驱动获取请求参数
	 */
	@Override
	public User getModel() {
		if (user == null)
			this.user = new User();
		return user;
	}

	/**
	 * 处理请求地址为/rams/user_save
	 * 
	 * @return
	 */
	public String save() {
		System.out.println(user);
		return SUCCESS;
	}

	/**
	 * 处理请求地址为/rams/user/user_login
	 * 
	 * @return
	 */
	@Action(value = "login", className = "userAction", results = //
	@Result(name = "success", location = "result.jsp"))
	public String login() {
		return SUCCESS;
	}

}

  jsp页面获得通过EI表达式获得参数,如果请求成功,则跳到结果页面


<a href="user_save?loginName=我信了你的邪&username=我是你大爷">点击请求action</a>

  

 

转载于:https://www.cnblogs.com/Skuraishooo/p/7846369.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值