struts 配置过程 -一个计算器程序

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>
复制代码

 

页面整体效果图:

 

总结:经常用到的知识,不要因为简单都不总结。用非常短的时间坐下总结,以后在用到的时候有据可依!


评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值