Struts2入门示例

1、导入struts2需要的9个包到lib文件夹中

2、配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

  <filter>
      <filter-name>struts</filter-name>
      <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>

  <filter-mapping>
      <filter-name>struts</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

如上面所示:配置了StrutsPrepareAndExecuteFilter,StrutsPrepareAndExecuteFilter就会自动加载struts2框架。配置好了filter后,还需要配置filter拦截的URL。一般让拦截用户所有请求。配置filter还可以是org.apache.struts2.dispatcher.FilterDispatcher,但是该filter已近过时了,所有还是用StrutsPrepareAndExecuteFilter

3、Action控制器

在src/action文件夹下面创建一个ShowWords类

 1 package action;
 2
 3 public class ShowWords {
 4
 5     private String name;
 6     private String words;
 7     public String getName() {
 8         return name;
 9     }
10     public void setName(String name) {
11         this.name = name;
12     }
13     public String getWords() {
14         return words;
15     }
16     public void setWords(String words) {
17         this.words = words;
18     }
19
20     public String execute(){
21         if(name.equals("")){
22             return "input";
23         }else{
24             words="欢迎您:"+name;
25             return "success";
26         }
27     }
28 }

如上ShowWords类,添加了name和words属性,并在action中执行默认方法execute,判断如果字符串为空,则返回逻辑视图input,否则返回success逻辑视图

4、配置struts.xml

在src下面新建一个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>
    <constant name="struts.i18n.encoding" value="UTF-8"></constant>
    <constant name="struts.action.extension" value="action,do,"></constant>
    <package extends="struts-default" name="default" namespace="/">
        <action name="showWords" class="action.ShowWords">
            <result>/Hello.jsp</result>
            <result name="input">/index.jsp</result>
        </action>
    </package>
</struts>

其中dtd名称空间可以拷贝struts2-core-2.3.28.1.jar包下面struts-default.xml下面的DOCTYPE

constant:用于配置struts默认配置,例如struts.i18n.encoding,用于设置字符编码;struts.action.extension:用于设置url的扩展名,这里设置可以不需要扩展名,也可以用action或do作为扩展名

struts框架默认属性保存在struts2-core-2.3.28.1.jar/org.apache.struts2/default.properties中

extends="struts-default":表示该配置继承自srtuts-default,而struts-default配置在struts-default.xml文件中

<action name="showWords" class="action.ShowWords">

name:url访问路径   class:action类

在action标签中还有一个method属性,该属性用来指定需要执行action类中的什么方法,如果不指定,默认方法execute方法

<result>/Hello.jsp</result>
<result name="input">/index.jsp</result>

根据action类返回结果,来控制视图

name属性即为action的返回值,如果不设置name默认为success,而result中文本表示需要执行的视图jsp的地址

时间: 2024-10-13 07:25:57

Struts2入门示例的相关文章

【java开发系列】—— spring简单入门示例

1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转\依赖注入,和AOP面向切面编程. 1 控制反转IOC\依赖注入DI,因为翻译的不同,因此有两个名字. 控制反转意思就是说,当我们调用一个方法或者类时,不再有我们主动去创建这个类的对象,控制权交给别人(spring). 依赖注入意思就是说,spring主动创建被调用类的对象,然后把这个对象注入到我们

Spring MVC 入门示例讲解

MVC框架是什么 Dispatcher Servlet(Spring控制器) Spring入门示例 运行时依赖库 web.xml和spring-servlet.xml文件配置 请求控制器EmployeeController.java 视图模型EmployeeVO.java Dao类 业务层类 视图employeeListDisplay.jsp MVC框架是什么 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型.视图及控制器在应用程序中的角色将业务

简单的谈一下struts2入门

1:Struts的由来 Struts1 - > 2000~2007 火,第一个非常成功的MVC框架 . 高耦合.高度的依赖于Servlet容器. 2003开始就有了很多的其他的MVC框架 Webwork  - struts2 Jsf - SUN springmvc 记住关键的一个概念就是Struts2是webwor升级版本 下载struts2 http://struts.apache.org/ Apache Struts is a free, open-source, MVC framework

SpringMVC 入门示例讲解

首先要了解什么是MVC,MVC全称是Model View Controller,是模型(Model)-视图(View)和控制器(Controller)的缩写,一种软件设计典范,用一种业务逻辑·.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 伯乐在线-ImportNew:       http://www.importnew

ehcache2.8.3入门示例:hello world

一.pom.xml 依赖项 1 <dependency> 2 <groupId>net.sf.ehcache</groupId> 3 <artifactId>ehcache</artifactId> 4 <version>2.8.3</version> 5 </dependency> 6 7 <dependency> 8 <groupId>org.slf4j</groupId>

OpenCV 入门示例之五:一个复杂点的变换

前言 前文介绍了一个简单的变换.需要注意的是,很多时候,输出和输入图像的格式是不同的( 大小,深度,通道 ).在本文将展示的程序中,对图像进行了缩放( 使用cvPyrDown 函数 ),这种情况下需要先定制好输出图像的格式,然后再将其与输入图像一起传递进缩放函数. 代码示例 1 // 此头文件包含图像IO函数的声明 2 #include "highgui.h" 3 // 此头文件包含基本的图像处理函数和高级计算机视觉算法 4 #include "cv.h" 5 6

Android OpenGL入门示例:绘制三角形和正方形 (附完整源码)

Android上对OpenGl的支持是无缝的,所以才有众多3D效果如此逼真的游戏,在Camera的一些流程中也有用到GLSurfaceView的情况.本文记录OpenGL在Android上的入门级示例,绘制一个三角形和正方形.尽管功能简单,可是我捣腾了好几个晚上,大量网上文章上的代码都有点问题,不是绘制不出来就是挂了. 第一个文件:MainActivity.java package com.example.learnopengl1; import android.opengl.GLSurface

OpenCV 入门示例之四:一个简单的变换

前言 图像的平滑处理,是计算机视觉中非常重要的操作,本文将展示一个可以对图像进行平滑处理的简单程序.而关于平滑处理深层次的知识,会在以后的文章中重点探讨. 代码示例 1 // 此头文件包含图像IO函数的声明 2 #include "highgui.h" 3 // 此头文件包含基本的图像处理函数和高级计算机视觉算法 4 #include "cv.h" 5 6 int main (void) { 7 8 // 将D盘目录下名为" 1.jpg "的图像

dubbo入门示例

本文主要介绍阿里dubbo的基本使用,关于dubbo的相关基础概念请自行参考dubbo官网:http://www.dubbo.io dubbo是一个服务治理的框架,在如今大规模的分布式应用和SOA架构中,服务治理的问题显的尤为的重要. 以我个人使用dubbo的场景来总结,dubbo主要解决如下问题: 1.项目服务化后,项目之间的高性能通讯问题.(项目被拆分成多个服务模块后必然会涉及模块之间的通讯) 2.服务的URL管理,当项目拆分为N个服务并且不断增加时,如何有效的管理的服务URL 3.服务发现