一:以配置文件的方式开发
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>