码迷,mamicode.com
首页 > 其他好文 > 详细

SSH之Struts2

时间:2015-02-26 21:40:55      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

    由于现在struts1不常使用了,对于struts1的了解也不是很多,就说Struts2吧,struts的视频是看过期好久好久了一直没有系统的整理,这次打算搭建SSH框架,再重新梳理一遍,说起Struts2我们都知道是由传统的Strutswebwork两个经典MVC框架发展起来的,所以从各种角度来说Struts2都是一个优秀的MVC框架。

今天就先写一个使用struts2框架实现的登录的小实例:

第一步:需要编写web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <display-name>strutsdemo</display-name>
 <!-- 建立web与struts的关联***************start************** -->
 <filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping> 
  <!-- 建立web与struts的关联***************start************** -->
</web-app>


第二步:引入struts2需要的jar包:添加到web-info下的lib文件下:

技术分享

 

第三步:建立登录的jsp页面:

<!-- 定义标签库 -->
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录</title>
</head>
<body>
    <!-- 定义一个表单和三个简单表单域 -->
    <s:form action="login">
        <s:textfield name="username" key="user"></s:textfield>
        <s:textfield name="password" key="pass"></s:textfield>
        <s:submit key="login"></s:submit>
    </s:form>
</body>
</html>


第四步:在jsp中指定表单的actionlogin,因为必须定义action,代码如下:

 

package com.tgb.struts2;

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

public class LoginAction extends ActionSupport {
	//定义封装请求参数的username和password
	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;
	}

	/**
	 * 重写用户请求的execute方法
	 */
	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		if(getUsername().equals("jly") && getPassword().equals("0"))
		{
			ActionContext.getContext().getSession().put("user",getUsername());
			return SUCCESS;
		}
		else {
			return ERROR;
		}
	}
}

第五步struts配置文件:增加了Action类之后,还需编辑相应的配置文件:其中需要说明的是,代码中的key是设置的常量,那么这个是在哪里设置的呢?这样:Struts2框架有两个核心配置文件,其中Struts.xml主要负责管理应用中的action映射以及action处理结果和物理资源之间的映射关系,除此之外还包含了一个struts.properties文件,主要用于定义框架的大量常量属性。我们先来看struts.xml配置文件内容:

<struts>
<!-- 通过constant元素配置Struts2的属性 -->
<constant name="struts.custom.i18n.resources" value="mess"></constant>

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

</struts>

定义变量的文件为:

技术分享

这样jsp页面的显示效果为:

技术分享

 

这是一个简单的实例,其中有一个亮点是mess.properties文件可以灵活的配置常量的属性。

SSH之Struts2

标签:

原文地址:http://blog.csdn.net/jly4758/article/details/43956357

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!