Struts入门基础应用

Struts 是为了规范 MVC 开发而发布的一个框架。类似的框架还有WebWork、SpringMVC 等。Struts2虽然是在Struts1的基础上发展的,但是它以Webwork为核心。Struts2控制器分为核心控制器与业务控制器。Struts2的核心控制器是Filterdispatcher,业务器是Action。其中,核心控制器在Web应用中负责拦截所有的用户请求。Struts2框架提供了强大的标签库,通过这些标签,可以大大减少JSP页面的代码编写。而且,Struts2的标签库并不只是提供了表现层数据处理,还提供了基本的流程控制等功能。

要编写基于Struts框架的应用,需要导入一些支持的包,也就是Struts开发包。复制到Web应用的WEB-IBN/lib目录下。这几个包可以在Struts2官网下载。下载完后解压在它的lib目录下,五个必须的包名如下所示:

struts2-core.jBr
commons-logging.jar
xwork.jar
Freemarker.jar
ognl.jar

现在我们来创建第一个Struts2的例子,本例在myeclipse下编写。

首先配置Web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
   <!-- 定义struts2的过滤器 -->
   <filter><!-- 加载核心库的控制标签filtername -->
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
 
 <!-- strust2过滤器生效的地址 -->
 <filter-mapping>
  <filter-name>struts2</filter-name><!-- 可以不必是Struts2但必需与上个相同 -->
   <url-pattern>/*</url-pattern>
 </filter-mapping>
 
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file><!--定义欢迎页  -->
  </welcome-file-list>
</web-app>
创建Action类:
package com.wjrong.test.action;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

@SuppressWarnings("serial")
public class Login2Action extends ActionSupport implements ModelDriven<Admin> {
	private Admin admin;
	private static final String CURRCNT_USER = "CURRCNT_USER";
	public  void validateExecute(){
		if(admin.getName().equals("wjrong") && admin.getPassword().equals("123")){
			Map<String,Object>session=ActionContext.getContext().getSession();
			if(session.containsKey(CURRCNT_USER)){
				session.remove(CURRCNT_USER);
			}
			session.put(CURRCNT_USER, admin.getName());
		}else {
			super.addActionError("用户名为空,或用户名密码不匹配。");
		}
	}
	@Override
	public String execute() throws Exception {
		System.out.println(admin.getName()+"---------"+admin.getPassword());
		System.out.println("Login---->成功!" );
		return "SUCCESS";
	}
	
	@Override
	public Admin getModel() {
		if(admin == null) admin = new Admin();
		return admin;
	}
	public Admin getAdmin() {
		return admin;
	}
	public void setAdmin(Admin admin) {
		this.admin = admin;
	}
}

定义Struts2的action配置:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<constant name="struts.enable.DynamicMethodInvocation" value="true" />
    <constant name="struts.devMode" value="true" />
    <constant name="struts.ui.theme" value="xhtml"></constant>
    <package name="default" namespace="/" extends="struts-default">
    	<default-action-ref name="mydefault"></default-action-ref>
    	<action name="login" class="com.wjrong.test.action.LoginAction">
    		<result name="SUCCESS" type="redirect">/success.jsp</result>
    		<result name="FAIL" type="redirect">/fail.jsp</result>
    		<result name="input">/index.jsp</result>
    	</action>
    	<action name="*User" class="com.wjrong.test.action.UserAction" method="{1}">
    		<result name="login" type="redirect">/login.jsp</result>
    		<result name="register" type="dispatcher">/register.jsp</result>
    		<result name="input">/index.jsp</result>
    	</action>
    	
    	<!-- 定义一个缺省Action -->
    	<action name="mydefault">
    		<result>/error.jsp</result>
    	</action>
    </package>

</struts>   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值