1、新建一个java web项目
2、引入jar包、jar包路径:struts-1.2.9-bin\lib
3、配置web.xml文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?
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">
<
servlet
>
<
servlet-name
>action</
servlet-name
>
<
servlet-class
>org.apache.struts.action.ActionServlet</
servlet-class
>
<
load-on-startup
>2</
load-on-startup
>
</
servlet
>
<!-- Standard Action Servlet Mapping -->
<
servlet-mapping
>
<
servlet-name
>action</
servlet-name
>
<
url-pattern
>*.action</
url-pattern
>
</
servlet-mapping
>
</
web-app
>
|
1
|
<
url-pattern
>*.action</
url-pattern
> 是拦截前台配置信息。<
br
><
br
>
|
4、配置struts-config.xml文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?
xml
version="1.0" encoding="ISO-8859-1" ?>
<!
DOCTYPE
struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<
struts-config
>
<
form-beans
>
<
form-bean
name="calForma" type="com.bjpowrnode.struts.CalActionForm"/>
</
form-beans
>
<
action-mappings
>
<
action
path="/cala"
type="com.bjpowrnode.struts.CalAction"
name="calForma"
scope="request"
>
<
forward
name="success" path="/success.jsp"/>
<
forward
name="error" path="/error.jsp"/>
</
action
>
</
action-mappings
>
</
struts-config
>
|
1
|
<
form-bean
name="calForma" type="com.bjpowrnode.struts.CalActionForm"/> 其中的name“calForm”是给文件中的数据起了个别名,在下面用( name="calForma")<
br
>通过forward放回的页面中,也中通过这里的 name="calForma"来取值的。
|
1
|
type="com.bjpowrnode.struts.CalAction" 数据的来源
|
1
|
scope="request" 数据提交的方式 默认是session存储。<
br
><
br
>input.jsp 页面 :显示计算机页面
|
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<h>简易计算机</h>
<hr>
<form action="cala.action" method="post">
<input type="text" name="value1"><br>
<select name="flag">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type="text" name="value2">
<input type="submit" value="计算">
</form>
</body>
</html>
CalActionForm类: 相对于实体
package com.bjpowrnode.struts; import org.apache.struts.action.ActionForm; @SuppressWarnings("serial") public class CalActionForm extends ActionForm { private int value1; private String flag; private int value2; public int getValue1() { return value1; } public void setValue1(int value1) { this.value1 = value1; } public String getFlag() { return flag; } public void setFlag(String flag) { this.flag = flag; } public int getValue2() { return value2; } public void setValue2(int value2) { this.value2 = value2; } }
CalAction类: 处理业务逻辑
package com.bjpowrnode.struts; 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; public class CalAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { CalActionForm calForm = (CalActionForm)form; int value1 = calForm.getValue1(); String flag = calForm.getFlag(); int value2 = calForm.getValue2(); int result=0; try{ if("+".equals(flag)){ result = value1+value2; }else if("-".equals(flag)){ result = value1-value2; }else if("*".equals(flag)){ result = value1*value2; }else if("/".equals(flag)){ result = value1/value2; } //把result 放进request 中方便el表达式取值 request.setAttribute("result", result); return mapping.findForward("success"); }catch(Exception e){ e.printStackTrace(); } return mapping.findForward("error"); } }
其中的 mapping.findForward("success"); 也就是 为struts-config.xml提供转向页面的依据。
success.jsp 页面:计算成功显示数据
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Insert title here</title> </head> <body> ${calForma.value1} ${calForma.flag} ${calForma.value2} = ${result} </body> </html>
用到了EL表达式。
error.jsp页面:计算失败
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Insert title here</title> </head> <body> ${calForm.value1} ${calForm.flag} ${calForm.value2} 失败! </body> </html>
页面整体效果图:
总结:经常用到的知识,不要因为简单都不总结。用非常短的时间坐下总结,以后在用到的时候有据可依!