以创建登入界面为例:
步骤1:在Myeclipse或者eclipse中新建一个web工程;
步骤2:将Struts开发包导入工程中,导入WebRoot-->WEB-INF-->lib文件夹中;(paste)
步骤3:创建login.jsp,放在WebRoot-->WEB-INF目录下,并建立一个 表单,如下:
<body>
<form action="???" method="post">
u:<input type="text" name="usename"><br/>
p:<input type="password" name="password"><br/>
u:<input type="submit" value="login"><br/>
</form>
</body>
步骤4:在index.jsp中加上
<body>
<jsp:forward page="/WEB-INF/login.jsp"></jsp:include>>
</body>
使初始页面跳转大login.jsp。
测试一下,结果如下:
步骤5:编写表单类和Action:
表单类要继承ActionForm类,才是一个表单类。
package com.whut.forms;
//用于填充数据
import org.apache.struts.action.ActionForm;
public class UserForm extends ActionForm {
//定义属性(这里有一个规范,就是我们定义属性名字的时候
//应该和JSP页面的控件名称一样,name的值.但不是必须的!)
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
System.out.println("actionservlet调用我,传入用户名"+username);
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
package com.whut.actions;
//这是一个action(表示小队长,需要继承Action)
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.whut.forms.UserForm;
public class LoginAction extends Action {
//重写一个方法execute():
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserForm userForm = (UserForm)form;
System.out.println("用户名"+userForm.getUsername());
if("123".equals(userForm.getPassword())){
return mapping.findForward("ok");
}else
return mapping.findForward("err");
}
}
步骤6:编写struts-config.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<!-- name是表单名字,可以随意取名,建议取名规范,表单类名小写 -->
<!-- type是ActionForm的全路径 -->
<form-bean name="userForm" type="com.whut.forms.UserForm"></form-bean>
</form-beans>
<!-- 配置具体的一个action path:表示将来访问该action的资源名,http://localhost:8080/web/path? -->
<action-mappings>
<!-- name 用于关联某个表单,与<form-bean>中的name必须一样 -->
<!-- type是action类的全路径 -->
<action path="/login" name="userForm" type="com.whut.actions.LoginAction">
<!-- 配置跳转关系 -->
<forward name="ok" path="/WEB-INF/wel.jsp"></forward>
<forward name="err" path="/WEB-INF/err.jsp"></forward>
</action>
</action-mappings>
</struts-config>
步骤7:web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>