最近在学习struts2框架,写个基于stutrs的登陆案例,巩固下struts2知识。
1.stutus2简介
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
2.准备工作
2.1 先导入相关jar包
2.2 选择struts2.1
2.3 此处会生成一个struts的配置文件
3.编写代码
3.1 index.jsp 编写个简单的form表单
<form action="Login" method="post">
username:<input type="text" name="username"/><br/>
password:<input type="password" name="password"/><br/>
<input type="submit" value="submit">
</form>
3.2 编写Login实体类,注意此处的username,与password要和form表单相同。
package com.struts2.login;
public class Login {
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;
}
public String execute(){
if(this.username.equals("123") && this.password.equals("123")){
return "success";
}else{
return "error";
}
}
}
3.3 在struts.xml 里配置相关信息
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<!-- package name : 为包名,可自定义,但要唯一 namespace :命名空间 extends:继承struts默认配置 -->
<!-- action name:指定动作 此处需与form表单的action保持一致 ,class 为动作所映射的类 -->
<!-- result name: 结果所对应的页面,此处的name 需与Login类 execute()方法里的返回值对应-->
<package name="test" namespace="/" extends="struts-default">
<action name="Login" class="com.struts2.login.Login">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
3.4 代码部分都编写完成,还有个地方要注意,就是web.xml里,如果struts相关jar包是按本文方式加入的,就会自动生成如下配置信息。若手动导入jar包,手动编写struts.xml文件,则需手动添加。
<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>
4.运行项目
项目运行成功!