Struct2学习:HelloWorld

Posted wsfu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struct2学习:HelloWorld相关的知识,希望对你有一定的参考价值。

项目结构:

技术图片

 

1、用IDEA新建一个SpringBoot+Maven的项目

2、新建的项目是没有webapp、WEB-INF、与web.xml文件的,需要在下图中添加:

技术图片

技术图片

3、在pom.xml引入struct2

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.5.18</version>
</dependency>

4、编写主页home.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
    <title>Home</title>
</head>
<body>
<form action="hello">
    <label for="pername">Please enter your name</label>
    <input id="pername" type="text" name="name" />
    <input type="submit" value="提交" />
</form>
</body>
</html>

该页面输入一个名字,通过名为hello的action,将名字显示在另一个页面。

5、定义动作HelloWorldAction.java

package com.owlforest.home.action;

public class HelloWorldAction {
    private String name;

    public String excute(){
        return "success";
    }

    public String getName() {
        return name;
    }

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

6、jsp页面与动作之间需要通过WEB-INFclassesstruts.xml关联

struts.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <!-- 设置struts是否为开发模式,默认为false,测试阶段一般设为true. -->
    <constant name="struts.devMode" value="true" />
    <package name="suibian" extends="struts-default">
        <action name="hello" class="com.owlforest.home.action.HelloWorldAction" method="excute">
            <result name="success">/HelloWorld.jsp</result>
        </action>
    </package>
</struts>

7、编写跳转页HelloWorld.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
    <title>show name</title>
</head>
<body>
Hello World : <s:property value="name" />
</body>
</html>

需要注意的是,home.jsp、HelloWorldAction.java与HelloWorld.jsp中的name属性需要在名称上面保持一致。

form表单中的action名字与struct.xml中的action name要保持一致

这个地方在属性过多的情况下可能会出现命名冲突导致错误出现,不知道struct2是如何解决的,后续再继续学习。

 

以上是关于Struct2学习:HelloWorld的主要内容,如果未能解决你的问题,请参考以下文章

Struct2.0学习笔记1

struct2框架我的猜想

struct2的xml文件中result的配置(转)

Struct2 csv文件上传读取中文内容乱码

为啥这段代码会泄露? (简单的代码片段)

Struct2笔记