`
yueyan945
  • 浏览: 5995 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

Struts2学习笔记1_基本配置与登录

阅读更多
struts官方网址:http://struts.apache.org

1.新建web工程,导入基本的5个jar包:
        commons-logging-1.0.4.jar
        freemarker-2.3.8.jar
        ognl-2.6.11.jar
        struts2-core-2.0.14.jar
        xwork-2.0.7.jar



2.配置web.xml过滤器
<filter>
 <filter-name>struts2</filter-name>
 <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
 <filter-name>struts2</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>


3.新建Action(LoginAction),它是一个POJO
package com.test.bean;

public class LoginAction {

	private String username;
	private String password;
	
	// setter和getter ...
	
	//Action中的处理方法
	public String execute(){
		if( "yueyan".equals(this.getUsername().trim()
                        && "123".equals(this.getPassword().trim())) {
			return "success";
		}else{
			return "error";
		}	
	}
}


4.在src目录下(运行时实际是WEB-INF/classes目录),新建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.0.dtd">

<struts>
	<package name="struts2" extends="struts-default">
		<action name="login" class="com.test.struts2.action.LoginAction">
			<result >/success.jsp</result>
			<result name="error">/error.jsp</result>
                  </action>
	</package>
</struts>

<result>节点的name属性若不写,则默认为name="success"

5.login.jsp页面
    <form action="login.action" method="post"> 
    	用户名:<input type="text" name="username" /><br>
    	密码:<input type="password" name="password" /><br>
    	<input type="submit">
    </form>

成功页面success.jsp 失败页面error.jsp 省略

对登录进行改进:
1.继承com.opensymphony.xwork2.ActionSupport,改善我们的Action类
package com.test.struts2.action;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction2 extends ActionSupport {

	private String username;
	private String password;
		
	//  setter和getter
	
   /** 处理 */
	@Override
	public String execute(){
		if( "yueyan".equals(this.getUsername().trim())
                       && "123".equals(this.getPassword().trim()) ){
			return "success";
		}else{
			return "error";
		}	
	}
	
   /** 验证 */
	@Override
	public void validate() {
		if( "".equals(this.getUsername().trim()) ){
		  this.addFieldError("username", "用户名为空");//给字段添加错误信息
		}
		if( "".equals(this.getPassword().trim()) ){
		  this.addFieldError("password", "密码为空");
		}
	}
}


2.struts.xml中添加一个新的action
<action name="login2" class="com.test.struts2.action.LoginAction2">
			<result >/success.jsp</result>
			<result name="error">/error.jsp</result>
			<result name="input">/login.jsp</result>
		</action>

<result name="input">/login.jsp</result>表示用login.jsp来显示验证所产生的错误信息

3.login.jsp中使用struts2的标签
先导入标签库:
<%@ taglib prefix="s" uri="/struts-tags" %>

使用标签:
<s:form action="login2">
    	<s:textfield name="username" label="用户名" />
    	<s:password name="password" label="密  码" />
    	<s:submit label="提交" />
    </s:form>



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics