struts2入门总结



1.struts 1.x缺点:
需要编写的类过多,容易引起类爆炸。
严重的继承依赖。
单元测试困难,需要servlet容器。

2.JaveEE明确POJO应用。使用富血模型。

综上两点,struts2出现。成为未来MVC主流框架趋势。



二.struts2和struts1x相比:

1.action无需继承任何父类,只是一个简单的pojo。这样的简单javabean可以在任意环境下进行测试。
2.大量使用AOP,增加了丰富的功能,分离业务功能和系统功能。


三.构建简单的Strut2工程
1.Struts2基础库xwork ,commons-logging,freemarker,ognl,struts2-core

2.xml配置核心过滤器
<filter-name>struts2</filter-name>

            <!-- 定义核心Filter的实现类 注意struts2.dispatcher是小写-->

                  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher

                   </ filter-class>

                    </filter>

            <!-- FilterDispatcher用来初始化Struts 2并且处理所有的Web请求 -->

                   <filter-mapping>

                    <filter-name>Struts2</filter-name>

                   <url-pattern>/*</url-pattern>

                    </filter-mapping>


3.写个简单的action

public class LoginAction {
	private String username;
	private String password;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
	
	public String execute(){
		if("hl".equals(this.getUsername().trim())){
			return "success";
		}
		return "unsuccess";
	}
}


对于struts2的action对象,execute方法不是必要的,但在默认情况下,调用的是execute方法。execute方法没用参数,返回值只是一个字符串,很清爽。而且,不必建立form来封装请求参数。直接使用action的属性就可以获得请求参数。这里比strut1的工作量小很多。

4.最后配置struts.xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<package name="struts2_test1" extends="struts-default">
		<action name="login" class="com.hl.struts2.action.LoginAction">
			<result name="success">/success.jsp</result>
			<result name="unsuccess">/login.jsp</result>
		</action>
        </package>
</struts>


login.jsp
<form method="post" action="login.action" name="loginForm">
	username:<input type="text" name="username">
	password:<input type="text" name="password">
	<input type="submit" value="提交" name="subBtn">
</form>

你可能感兴趣的:(apache,jsp,xml,freemarker,struts)