Struts Hello World示例

在本教程中,我们向您展示如何使用经典的Struts 1.3框架开发Hello World Web应用程序。

使用的工具和技术:

  1. Struts1.3.10
  2. Maven的2.x
  3. Eclipse 3.6

最终项目结构

首先让我们看看最终的文件夹结构。

Struts-Hello-World-Maven

1. Maven模板

使用Maven命令“ mvn archetype:generate ”生成快速启动的Java项目结构,为简单的Java Web项目模板选择模板18。

Define value for groupId: : com.mkyong.common
Define value for artifactId: : StrutsExample
Define value for version:  1.0-SNAPSHOT: :
Define value for package:  com.mkyong.common: : com.mkyong.common
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 minute 5 seconds
[INFO] Finished at: Thu Apr 08 11:29:30 SGT 2010
[INFO] Final Memory: 8M/14M
[INFO] ------------------------------------------------------------------------

2. pom.xml文件配置

在pom.xml中添加Struts依赖项。 在Struts 1.x中,您需要将struts-core.jar用于核心模块,将struts-taglib.jar用于标记库。

<project xmlns="http://maven.apache.org/POM/4.0.0" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
  http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mkyong.common</groupId>
  <artifactId>StrutsExample</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>StrutsExample Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.apache.struts</groupId>
	  <artifactId>struts-core</artifactId>
      <version>1.3.10</version>
    </dependency>
    
    <dependency>
      <groupId>org.apache.struts</groupId>
	  <artifactId>struts-taglib</artifactId>
      <version>1.3.10</version>
    </dependency>
   
  </dependencies>
  <build>
    <finalName>StrutsExample</finalName>
  </build>
</project>

3. Eclipse IDE

使用Maven命令“ mvn eclipse:eclipse -Dwtpversion = 1.5 ”将该项目转换为Eclipse Web项目。 所有依赖Struts的库都将自动下载到您的Maven本地存储库中,将其链接到您的项目类路径中,并将其转换为Eclipse的Web项目样式。

E:\workspace\struts\StrutsExample>mvn eclipse:eclipse -Dwtpversion=1.5
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'eclipse'.
[INFO] ------------------------------------------------------------------------
[INFO] Building StrutsExample Maven Webapp

只需将其导入Eclipse IDE。

4.行动表格

创建一个Struts Action Form来保存“ hello world”数据。

package com.mkyong.common.form;

import org.apache.struts.action.ActionForm;

public class HelloWorldForm extends ActionForm{
	
	String message;

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}
	
}

5.动作(控制器)

创建一个Struts Action(动作控制器)文件来控制Struts如何转发请求,只需在此处使用您自己的逻辑覆盖execute()方法即可。

package com.mkyong.common.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.mkyong.common.form.HelloWorldForm;

public class HelloWorldAction extends Action{
	
	public ActionForward execute(ActionMapping mapping,ActionForm form,
		HttpServletRequest request,HttpServletResponse response)
        throws Exception {
		
		HelloWorldForm helloWorldForm = (HelloWorldForm) form;
		helloWorldForm.setMessage("Hello World! Struts");
		
		return mapping.findForward("success");
	}
	
}

6. JSP视图页面

创建一个JSP页面,并通过Struts标记库访问Action Form对象,并打印它的message属性。







7. struts-config.xml

为Struts配置详细信息创建一个struts-config.xml文件,并将其放入WEB-INF文件夹。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" 
"http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">

<struts-config>

	<form-beans>
	   <form-bean name="helloWorldForm" 
		type="com.mkyong.common.form.HelloWorldForm"/>
	</form-beans>

	<action-mappings>
	   <action path="/helloWorld"
		type="com.mkyong.common.action.HelloWorldAction"
		name="helloWorldForm">
		<forward name="success" path="/HelloWorld.jsp"/>
			
	   </action>
	</action-mappings>

</struts-config>

定义一个名为“ helloWorldForm ”的表单Bean和动作控制器映射“ HelloWorldAction ”,将/ helloWorld Web路径与HelloWorldAction匹配。 这意味着/ helloWorld网络路径中的所有请求都将重定向到HelloWorldAction 。 “名称”属性用于定义将哪种操作形式传递给此HelloWorldAction

8. Web应用程序部署描述符

web.xml文件中,配置Struts ActionServlet实例并使用url-pattern“ * .do”对其进行映射,以便容器知道所有“ * .do ”模式都将重定向到Struts ActionServlet

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Maven Struts Examples</display-name>
  
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>
        org.apache.struts.action.ActionServlet
    </servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>
         /WEB-INF/struts-config.xml
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
    
  <servlet-mapping>
       <servlet-name>action</servlet-name>
       <url-pattern>*.do</url-pattern>
  </servlet-mapping>

</web-app>

9. Java EE模块依赖性(可选)

如果要在Eclipse IDE中进行调试工作,则必须确保已选中Java EE模块依赖项 ,以便Eclipse将所有依赖项部署到正确的文件夹中。 在这里查看详细信息

10.运行

在Eclipse IDE中,创建一个新的服务器插件并启动它。 您可以通过以下URL访问此示例。

http:// localhost:8080 / StrutsExample / helloWorld.do

Struts-Hello-World-Maven2

找不到HttpServletRequest类?
如果遇到上述错误,请确保包含javaee.jar (存在于JDK / lib文件夹中)。 由于许可证问题,此javaee.jar无法使用Maven下载,您必须手动将其包括在内。

下载

下载它– Struts-Hello-World-Example.zip

参考

翻译自: https://mkyong.com/struts/struts-hello-world-example/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值