学习struts先做一个小实例,有助于我们更好地了解struts2,一些配置文件的编写,Action的编写,还有jsp页面的编写和struts的工作原理等。
下面是实例的编写过程和代码(相关的注意问题也在代码的注释中指出)
1.在写之前要现在struts2官网上下载相关的jar包,就是那9个包没记住的可以看看上一篇文章。并将jar包放到webContent的web-INf文件的lib文件中,并将其导入工程中。
2.根据业务逻辑编写Action类;
package com.struts2;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private String username;//提交的参数名称,有三种方式这里应用在Action类中写提交验证的参数,必须实现GET,SET方法;
private String password;
//每一个Action都会执行这个方法,用于业务逻辑处理好控制
public String execute(){
if("admin".equals(username)&&"123456".equals(password)) {
//返回相关的参数有SUCCESS,LOGIN,NONE,ERROR,INPUT等<result>中的name属性会根据这些返回参数跳转到不同页面
return SUCCESS;
}
return LOGIN;
}
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;
}
}
3.Struts.xml配置文件;
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="main" extends="struts-default"><!-- 定义一个package包 -->
<global-results> <!-- 定义所有的全局result -->
<result name="login">/login.jsp</result> <!-- 这里的意思是定义一个全局的result,如果有的Action中没有相应的result 的name属性就会执行这个result结果-->
</global-results>
<action name="loginPreson" class="com.struts2.LoginAction"><!-- Action引入对应的Action类 -->
<result>/success.jsp</result>
</action>
</package>
</struts>
4.web.xml配置文件
<!-- struts2中的Filter,所有的请求都会被影射到struts2中 -->
<filter>
<filter-name>struts</filter-name> <!-- Fliter的名称-->
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> <!-- Filter的入口-->
</filter>
<filter-mapping> <!-- struts2的FilterUrl配置 -->
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5.jsp页面编写;
这里就不写jsp页面了,不过需要注意的是在login.jsp中,from表单action属性的值是在struts.xml文件中与对应的Action 的name属性保持一致。
以上就是一个编写Struts2的实例,包括相关xml文件的配置,Action的编写等。