使用struts2框架开发步骤

一:以配置文件的方式开发

1.导入jar包。

将jar包复制到web项目中的lib文件夹中。

2.配置Struts2的过滤器

  <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>

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter是Struts2框架为我们提供的一个类,/*是所有的都要穿过这个过滤器。

这个是在配置在web.xml里面的

3.编写action类

public class LoginAction {
	private String username;//这个名字要和页面上标签上的name属性是一样的,否则就不会有值
	private String password;
        //get和set必须要有
	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 login(){
		if(username.equals("admin")&&password.equals("ok"))
		{
			return "success";
		}
		else{
			return "fail";
		}
	}
}

4.在src文件夹下创建struts.xml文件,并且配置action类

<?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>
    <!-- name属性可以任意,namespace最好是跟这个业务相关的名并且"/"是必须要写的 -->
    <package name="log" namespace="/login" extends="struts-default">
        <!-- name要写和这个业务相关的,class就是jsp要访问的action的那个完整的类,method是要访问这个类的那个方法 -->
        <action name="login" class="org.sdibt.group.action.LoginAction" method="login" >
            <!-- 当返回值为success是,就跳转到success.jsp页面,当为fail是就跳到fail.jsp界面 -->
            <!-- 页面前面的"/"必须要写 -->
           <result name="success">/success.jsp</result>
            <result name="fail">/fail.jsp</result>
	</action> 
	</package>
</struts>

5.写jsp页面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--可以写相对路径,但是最好写绝对路径-->
<form action="login">
        <!-- name的值必须和action里的属性的名是一样的,这样访问action的时候,哪里的属性就会直接赋上值 -->
	用户名:<input type="text" name="username"/><br>
	密码:<input type="password" name="password"/><br>
	<input type="submit" value="登录"/>
</form>
</body>
</html>

6.运行服务器开始测试


二:采用注解的方式开发

1.导入注解所需要的jar包

struts2-convention-plugin-2.2.1.jar  

2.配置Struts2的过滤器

  <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>

3.将struts.xml里面的东西都删除

4.编写action并开始打注解(我用一个新的例子)

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;

//命名空间
@Namespace("/jsonn")
//继承自那个父类
@ParentPackage("struts-default")
public class JsonAction {
	//属性名必须和页面上的name的值是一样的
	private String userName;
	
	private String userPassword;

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getUserPassword() {
		return userPassword;
	}

	public void setUserPassword(String userPassword) {
		this.userPassword = userPassword;
	}

        //value是访问的时候要输入的,results里面可以写多个result,name就是返回的值,location是要跳转到哪一个页面。方法的返回值必须是String。
	@Action(value="jsonn",results={@Result(name="jsonn",location="/jsonn.jsp")})
	public String testJson(){
		
		System.out.println("hhh");
		return "jsonn";
	}
}

5.写jsp页面

<body>
	<form action="/javaweb_easyui/jsonn/jsonn">
                <!-- 和action类的属性名一样 -->
		用户名:<input type="text" name="userName"/>
		密码:<input type="password" name="userPassword"/>
		<input type="submit" value="提交" />
	</form>
</body>

6.运行服务器开始测试

猜你喜欢

转载自blog.csdn.net/Quan_qqqq/article/details/80549552