(04)Struts2_helloWorld

需求

借用前面struts2-01的需求截图

编码

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
    <a href="czy_input.action">进入Input.jsp页面</a>
</body>
</html>

Input.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
  <form action="czy_save.action" method="post">
       编号:<input type="text" name="dlh"/><br>
       姓名:<input type="text" name="name"/><br>
       部门:<input type="text" name="bmmc"/><br>
       <input type="submit" value="保存"/>
   </form>
  </body>
</html>

Show.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
       ID:${id}<br>
       编号:${ dlh}<br>
       姓名:${ name}<br>
       部门:${ bmmc}<br>
  </body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    id="WebApp_ID" version="3.1">
    <display-name>struts2-02</display-name>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <!-- 配置Struts2的过滤器 -->
    <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>

</web-app>

struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <!--  
        package: 包. struts2 使用 package 来组织模块. 
        name 属性: 必须. 用于其它的包应用当前包. 
        extends: 当前包继承哪个包, 继承的, 即可以继承其中的所有的配置. 通常情况下继承 struts-default
                 struts-default 这个包在 struts-default.xml 文件中定义.
        namespace 可选, 如果它没有给出, 则以 / 为默认值. 
                                若 namespace 有一个非默认值, 则要想调用这个包里的Action, 
                                就必须把这个属性所定义的命名空间添加到有关的 URI 字符串里

                  http://localhost:8080/contextPath/namespace/actionName.action
    -->
    <package name="helloworld" extends="struts-default" namespace="/">
        <!-- 
            配置一个 action: 一个 struts2 的请求就是一个 action 
            name: 对应一个 struts2 的请求的名字(或对一个 servletPath, 但去除 / 和扩展名), 不包含扩展名
            class 的默认值为: com.opensymphony.xwork2.ActionSupport
            method 的默认值为: execute
            result: 结果. 
        -->
        <action name="czy_input" >
            <!--  
                result: 结果. 表示 action 方法执行后可能返回的一个结果. 所以一个 action 节点可能会有多个 result 子节点.
                多个 result 子节点使用 name 来区分
                name: 标识一个 result. 和 action 方法的返回值对应. 默认值为 success
                type: 表示结果的类型. 默认值为 dispatcher(转发到结果.)
            -->
            <result >/WEB-INF/page/Input.jsp</result>
        </action>
        <action name="czy_save" class="com.qbz.struts2_02.GG_CZY" method="save">
            <result name="ok">/WEB-INF/page/Show.jsp</result>
        </action>
    </package>
</struts>

GG_CYZ.java

package com.qbz.struts2_02;

import java.util.UUID;


public class GG_CZY {
    private String id;
    private String dlh;
    private String name;
    private String bmmc;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getDlh() {
        return dlh;
    }

    public void setDlh(String dlh) {
        this.dlh = dlh;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getBmmc() {
        return bmmc;
    }

    public void setBmmc(String bmmc) {
        this.bmmc = bmmc;
    }

    public GG_CZY(String id, String dlh, String name, String bmmc) {
        super();
        this.id = id;
        this.dlh = dlh;
        this.name = name;
        this.bmmc = bmmc;
    }

    public GG_CZY() {
        super();
    }

    @Override
    public String toString() {
        return "GG_CZY [id=" + id + ", dlh=" + dlh + ", name=" + name
                + ", bmmc=" + bmmc + "]";
    }

    public String save() {
        if(this.id==null){
            this.id = UUID.randomUUID().toString().replace("-", "");
        }
        return "ok";
    }
}

至此,使用struts2实现了最简单的网页跳转、后台业务处理等helloWorld功能。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏WindCoder

PHP内存中的对象和引用简介

我首次起草这篇文章是在备战我的PHP认证时,以便更好地了解PHP如何管理内存中的变量和对象。经过大量研究,我意识到找到我的问题的答案并不容易,所以一旦我完成了,...

19010
来自专栏haifeiWu与他朋友们的专栏

Java命令之javap初探

javap是jdk自带的一个工具在jdk安装目录的/bin下面可以找到,可以对代码反编译,也可以查看java编译器生成的字节码,对代码的执行过程进行分析,了解j...

13920
来自专栏xingoo, 一个梦想做发明家的程序员

数字按照不同格式转换成字符串

  如果自己写函数,不使用itoa怎么判断呢?   我们用通常的办法,对数字进行每位的除商,得到后与字符'0'相加。 flag = 0; ...

219100
来自专栏小樱的经验随笔

【批处理学习笔记】第十五课:语句结构(1)

    类似于C语言,批处理也有它的语句结构。批处理的语句结构主要有选择结构(if语句)、循环结构(for语句)等。   if语句(选择结构)     if语...

30090
来自专栏我是攻城师

Solr搜索问题笔记(一)

39140
来自专栏青玉伏案

窥探Swift编程之错误处理与异常抛出

在Swift 2.0版本中,Swift语言对其错误处理进行了新的设计,当然了,重新设计后的结果使得该错误处理系统用起来更爽。今天博客的主题就是系统的搞一下Swi...

22050
来自专栏Young Dreamer

简易前端模板引擎

模板解析 解决的问题: 将data和js+html片段解析成html片段,完成赋值和js逻辑,如下所示: 输入: var data = {     name: ...

237100
来自专栏开源优测

移动测试Appium之API手册

移动测试Appium之API手册 前言 本文对Appium Python Client中webdriver.py代码进行分析说明。 笔者使用python3.6版...

49290
来自专栏Android Note

Kotlin —  apply vs with

13830
来自专栏desperate633

共享资源的线程安全性Local VariablesLocal Object ReferencesObject Member VariablesThe Thread Control Escape Rul

如果某段代码可以正确的被多线程并发的执行,那么我们就称这段代码是线程安全的,如果一段代码是线程安全的那么他肯定不会出现资源竞速的问题。资源竞速的问题只发生在多个...

6610

扫码关注云+社区

领取腾讯云代金券