使用Strust2框架写HelloWorld

一、创建JavaWeb项目

二、搭建Stust2 FrameWork开发环境

三步完成Struts2 FrameWork开发环境的搭建

1.加入搭建Struts2 FrameWork开发环境的必需Jar包

将必需的11个Jar包复制到【lib】文件夹中 

2.在【src】目录下创建“struts.xml”文件

在strusts.xml文件中加入如下配置信息

 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE struts PUBLIC
3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
4 "http://struts.apache.org/dtds/struts-2.0.dtd">
5
6 <struts>
7 <constant name="struts.devMode" value="true" />
8 <package name="Hello_World_Struts2" extends="struts-default">
9 <action name="index">
10 <result>/index.jsp</result>
11 </action>
12 </package>
13 </struts>

3.在【web.xml】文件中配置Struts2的核心过滤器(红色部分)

 1 <?xml version="1.0" encoding="UTF-8"?>
2 <web-app version="3.0"
3 xmlns="http://java.sun.com/xml/ns/javaee"
4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
6 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
7 <display-name></display-name>
8 <welcome-file-list>
9 <welcome-file>index.jsp</welcome-file>
10 </welcome-file-list>
11
12 <filter>
13 <filter-name>struts2</filter-name>
14 <filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
15 </filter>
16
17 <filter-mapping>
18 <filter-name>struts2</filter-name>
19 <url-pattern>/*</url-pattern>
20 </filter-mapping>
21
22 </web-app>

三、创建Model类MessageStore

在项目的src文件夹下添加一个“MessageStore.java”文件,如下图所示

点击【Finish】完成添加,此时在src目录下就可以看到“MessageStore.java”这个文件了

打开“MessageStore.java”,编写如下代码:

 1 package org.apache.struts.helloworld.model;
2 /**
3 * Model class that stores a message.
4 * @author xdp
5 * @since 2013-3-24
6 */
7 public class MessageStore {
8 private String message;
9 public MessageStore(String msg){
10 this.setMessage(msg);
11 }
12 public String getMessage() {
13 return message;
14 }
15 public void setMessage(String message) {
16 this.message = message;
17 }
18 }

四、创建Action类HelloWorldAction,充当Controller

在项目的src文件夹下添加一个“HelloWorldAction.java”文件,放到“org.apache.struts.helloworld.action”这个包中,如下图所示:

点击【Finish】完成添加,此时在src文件夹下就可以看到“HelloWorldAction.java”文件

在“HelloWorldAction.java”文件中编写如下代码:

 1 package org.apache.struts.helloworld.action;
2 import org.apache.struts.helloworld.model.MessageStore;
3 import com.opensymphony.xwork2.ActionSupport;
4 /**Acts as a Struts 2 controller that responds
5 * to a user action by setting the value
6 * of the Message model class, and returns a String result.
7 * @author xdp
8 * @since 2013-3-24
9 * @version 1.0
10 */
11 public class HelloWorldAction extends ActionSupport {
12 private MessageStore msgStore;
13 @Override
14 public String execute() throws Exception {
15    msgStore = new MessageStore("HelloWorld!");
16 return SUCCESS;
17 }
18 public MessageStore getMsgStore() {
19 return msgStore;
20 }
21 public void setMsgStore(MessageStore msgStore) {
22 this.msgStore = msgStore;
23 }
24 }

五、创建View(视图)HelloWorld.jsp

在【WebRoot】文件夹下创建“HelloWorld.jsp”文件,如下图所示:

此时弹出创建JSP文件的对话框

点击【Finish】完成添加,此时在【WebRoot】文件夹下就可以看到“HelloWorld.jsp”文件

在HelloWorld.jsp编写如下代码

 1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
2 pageEncoding="ISO-8859-1"%>
3 <%@ taglib prefix="s" uri="/struts-tags" %>
4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
5 <html>
6 <head>
7 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
8 <title>Hello World!</title>
9 </head>
10 <body>
11 <h2><s:property value="msgStore.message" /></h2>
12 </body>
13 </html>

六、配置struts.xml

在struts.xml中加入红色部分的配置信息

 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE struts PUBLIC
3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
4 "http://struts.apache.org/dtds/struts-2.0.dtd">
5 <struts>
6 <constant name="struts.devMode" value="true" />
7 <package name="Hello_World_Struts2" extends="struts-default">
8 <action name="index">
9 <result>/index.jsp</result>
10 </action>
11 <action name="hello"
12 class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute">
13 <result name="success">/HelloWorld.jsp</result>
14 </action>
15 </package>
16 </struts>

七、创建Action的URL链接

在index.jsp中添加Action的URL链接,index.jsp中的代码如下:

 1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
2 pageEncoding="ISO-8859-1"%>
3 <%@ taglib prefix="s" uri="/struts-tags" %>
4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
5 <html>
6 <head>
7 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
8 <title>Basic Struts 2 Application - Welcome</title>
9 </head>
10 <body>
11 <h1>Welcome To Struts 2!</h1>
12 <p><a href="<s:url action='hello'/>">Hello World</a></p>
13 </body>
14 </html>

“<%@ taglib prefix="s" uri="/struts-tags" %>”表示引入struts2的标签,“<s:url action>”是一个Struts2的标签,用于创建Action的URL链接,“<s:url action='hello'/>”表示链接到一个名字为“hello”的action,这个名字为“hello”的action是在struts.xml配置文件配置好的,在struts.xml文件中可以找到如下的配置信息

1 <action name="hello"
2 class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute">
3 <result name="success">/HelloWorld.jsp</result>
4 </action>

八、部署运行

将项目发布到MyEclispe自带的Tomcat服务器中,如下图所示:

发布成功后就可以在Tomcat服务器中看到,如下图所示:

打开浏览器,在浏览器中输入http://localhost:8080/Hello_World_Struts2/index.action,此时就可以看到运行效果,如下图所示:

点击【HelloWorld】超链接,此时看到的效果如下:

运行正常,HelloWorld!输出来了,使用Struts2编写入门级HelloWord程序成功!

 
 
分类: Struts2

使用Strust2框架写HelloWorld的更多相关文章

  1. 动手写一个简单的Web框架(HelloWorld的实现)

    动手写一个简单的Web框架(HelloWorld的实现) 关于python的wsgi问题可以看这篇博客 我就不具体阐述了,简单来说,wsgi标准需要我们提供一个可以被调用的python程序,可以实函数 ...

  2. 跟着刚哥学习Spring框架--创建HelloWorld项目(一)

    1.Spring框架简介 Spring是一个开源框架,Spring是在2003年兴起的一个轻量级的开源框架,由Rod johnson创建.主要对JavaBean的生命周期进行管理的轻量级框架,Spri ...

  3. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(五)——实现注册功能

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  4. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(四)——对 run.py 的调整

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  5. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  6. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  7. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(三)——使用Flask-Login库实现登录功能

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  8. Struts2框架01【如果使用struts框架】【利用struts框架写一个 hello world】

    1 什么是Struts2框架 基于MVC设计模式的web应用框架 Struts2框架是一个轻量级的MVC流程框架 轻量级是指程序的代码不是很多,运行时占用的资源不是很多,MVC流程框架就是说它是支持分 ...

  9. 使用IDEA,利用SpringMVC框架建立HelloWorld项目

    无论是从头开始学习一门新的语言还是技术,我们的入门都是从HelloWorld开始,也许就是因为这样,我在学习Spring MVC的时候,就有一种偏执,一定要写出一个HelloWorld来.研究了好久, ...

随机推荐

  1. Nyoj 一笔画问题(图论)

    描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来. 规定,所有的边都只能画一次,不能重复画.   输入 第一行只有一个正整数N(N&l ...

  2. java_OutOfMorryError 内存溢出(replaceAll)

    最近在使用string类中的replaceAll函数时碰到这个错误,由于string长度比较长,文本文档9M多,可以增加jvm的内存大小解决. 下面是一篇对OutOfMorryError错误的一些处理 ...

  3. MD5处理图片加密算法

    Android MD5加密算与J2SE平台一模一样,由于Android 平台支持 java.security.MessageDigest这个包.实际上与J2SE平台一模一样. 首先: 输入一个Stri ...

  4. POJ 2109 :Power of Cryptography

    Power of Cryptography Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 18258   Accepted: ...

  5. checkbox属性checked="checked"但状态不是勾选状态的解决办法

    原因: jQuery API明确说明,1.6+的jQuery要用prop,不能用attr否则无效,尤其是checkBox的checked的属性的判断.

  6. UVA The Sultan&#39;s Successors

    题目例如以下: The Sultan's Successors  The Sultan of Nubia has no children, so she has decided that thecou ...

  7. android 使用asm.jar将android手机屏幕投射到电脑

    使用asm.jar将Android手机到电脑屏幕投影 有时候可能须要将手机上的一些操作投影出来,比方一些App Demo的展示等.事实上,有专门的硬件设备能干这件事儿.但不是必需专门为展示个Demo去 ...

  8. ARC注意的泄漏问题

    --------- block中常见的泄漏问题 代码中block经常用到.例如网络请求?一些图形分析处理等,就是比较耗时的操作,多线程gcd然后进行操作. 这个时候,会使用block进行处理,然后调用 ...

  9. POI导出大量数据的简单解决方案(附源码)-Java-POI导出大量数据,导出Excel文件,压缩ZIP(转载自iteye.com)

    说明:我的电脑 2.0CPU 2G内存 能够十秒钟导出 20W 条数据 ,12.8M的excel内容压缩后2.68M 我们知道在POI导出Excel时,数据量大了,很容易导致内存溢出.由于Excel ...

  10. Require.JS 2.0

    就在前天晚上RequireJS发布了一个大版本,直接从version1.0.8升级到了2.0.随后的几小时James Burke又迅速的将版本调整为2.0.1,当然其配套的打包压缩工具r.js也同时升 ...