当前位置: 首页 > news >正文

SSH_Chapter2_Struts1.2的Deomo

总得留点时间做,功课丢下不少。无奈,但总算是强迫自己轻松了一下,要不身体是有点受不了。

恨自己没有把老师的视频拷贝下了,只好自己慢慢搞了。

废话少说了,开始做Struts吧。

1.新建一个Web Project项目yngTheoryCh2;

2.加入Struts的包

image

3.配置struts-config.xml和web.xml, 注意包千万不要搞错了,一定要复制过来不能手敲!

image

web.xml是自动生成的, 如果要手工配置的话, 就注意红框的部分不要搞错了。

image

4.AddForm的作用是封装表单提交的参数的值。需要注意的是应该与表单上的名称要一致!

如:<input name="num1" type="text" />就对应num1.

package y2ssh.sg.chp2.web.form;

import org.apache.struts.action.ActionForm;

public class AddForm extends ActionForm {
//属性
private double num1;
private double num2;
//Getters & setters
public double getNum1() {
return num1;
}
public void setNum1(double num1) {
this.num1 = num1;
}
public double getNum2() {
return num2;
}
public void setNum2(double num2) {
this.num2 = num2;
}
}

5. AddAction的作用是取得表单参数, 处理后转发给结果页面。

package y2ssh.sg.chp2.web.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.sun.org.apache.bcel.internal.generic.NEW;

import y2ssh.sg.chp1.biz.Calculator;
import y2ssh.sg.chp2.web.form.AddForm;

public class AddAction extends Action {
private Calculator biz=new Calculator();
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
ActionForward af=null;
//获取表单参数
AddForm addForm=(AddForm)form;
//调用业务对象方法
double resultData=biz.add(addForm.getNum1(), addForm.getNum2());
//将数据模型存储到request中
request.setAttribute("resultData", resultData);
//将请求转发逻辑名为"result"的页面
af=mapping.findForward("result");
return af;
}
}

6.起始页面代码:

[%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
[html>
[head>
[title>计算器[/title>
[/head>
[body bgcolor="#ffffco">
[h1>算术计算器[/h1>
[form name="calcForm" method="post" action="/yngTheory2/add.do">
[table width="300" border="1">
[tr>
[td>第一个数[/td>
[td>[input name="num1" type="text" />[/td>
[/tr>
[tr>
[td>第二个数[/td>
[td>[input name="num2" type="text" />[/td>
[/tr>
[tr>
[td>[/td>
[td>[input type="submit" value="加">[/td>
[/tr>
[/table>
[/form>
[/body>
[/html>

7.结果页面代码:

[%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
[html>
[head>
[title>计算器[/title>
[/head>
[body bgcolor="#ffffco">
[h1>算术计算器[/h1>
[form id="calcForm" method="post" action="add.do">
[table width="300" border="1">
[tr>
[td>第一个数[/td>
[td>${requestScope.addForm.num1 }[/td>
[/tr>
[tr>
[td>第二个数[/td>
[td>${requestScope.addForm.num2 }[/td>
[/tr>
[tr>
[td>结果[/td>
[td>${requestScope.resultData }[/td>
[/tr>
[/table>
[button οnclick="history.back();">返回[/button>
[/form>
[/body>
[/html>

相关文章:

  • vim使用技巧总结
  • 架构师的行为准则(三)
  • Java 和 C#通用的DES加密工具类的实现
  • SDL源码阅读笔记(2) video dirver的初始化及选择
  • 教你如何迅速秒杀掉:99%的海量数据处理面试题 [CSDN]
  • 主流报表工具推荐
  • 架构师的行为准则(四)
  • Android中intent如何传递自定义数据类型
  • EL表达式中fn函数
  • 主机访问VirtualBox虚拟机服务
  • GML对象的层次结构
  • NSXMLParser详解(事例)
  • 纯JS的表单邮件发送
  • 基于GML的几何数据模型
  • [转载] 古墓丽影2
  • [ JavaScript ] 数据结构与算法 —— 链表
  • Bytom交易说明(账户管理模式)
  • Centos6.8 使用rpm安装mysql5.7
  • ES学习笔记(12)--Symbol
  • iOS编译提示和导航提示
  • Js基础知识(四) - js运行原理与机制
  • mysql 5.6 原生Online DDL解析
  • node入门
  • Shell编程
  • springboot_database项目介绍
  • storm drpc实例
  • 浮动相关
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 免费小说阅读小程序
  • 如何使用 JavaScript 解析 URL
  • 深度学习在携程攻略社区的应用
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • #、%和$符号在OGNL表达式中经常出现
  • #QT(TCP网络编程-服务端)
  • (1)(1.11) SiK Radio v2(一)
  • (a /b)*c的值
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (LeetCode 49)Anagrams
  • (四)图像的%2线性拉伸
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转)linux 命令大全
  • (转)树状数组
  • ..回顾17,展望18
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET中使用Protobuffer 实现序列化和反序列化
  • @我的前任是个极品 微博分析
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式
  • [Asp.net MVC]Bundle合并,压缩js、css文件
  • [BSGS算法]纯水斐波那契数列
  • [C#基础知识系列]专题十七:深入理解动态类型