微信公众号:compassblog

欢迎关注、转发,互相学习,共同进步!

有任何问题,请后台留言联

1、Struts2常量配置

(1)、Struts2默认常量配置文件路径,如下图:

(2)、Struts2常量配置方式:以配置国际化字节编码UTF-8为例

方式1:在struts.xml文件中配置

  1. <constant name="struts.i18n.encoding" value="UTF-8"></constant>

方式2:在src下创建struts.properties文件配置

文件具体路径如下图:

文件配置代码为:

  1. struts.i18n.encoding=UTF8

方式3:在项目的web.xml文件中配置

  1.  <context-param>
         <param-name>struts.i18n.encoding</param-name>
         <param-value>UTF-8</param-value>
     </context-param>

(3)、Struts2配置文件加载顺序:

  • defalut.properties:首先加载默认配置

  • struts.xml:其次加载Action及自己的常量配置

  • struts.properties:第三加载文件中的常量配置

  • web.xml:最后加载核心过滤器及自己的常量的配置

2、Struts2中Action类的书写方式:

方式1:直接创建一个类

  1. package com.struts2.action;
  2. //创建一个POJO类:不继承任何父类,不实现任何接口
    public class Demo1 {
       //具体的方法
    }

方式2:创建一个类实现Action接口

  1. package com.struts2.action;
  2. import com.opensymphony.xwork2.Action;
  3. //实现一个Action接口
    // 覆写excute方法,提供action方法的规范
    // Action接口预置了一些字符串,以在返回结果时使用
    public class Demo2 implements Action {
  4.    @Override
       public String execute() throws Exception {
           //具体代码实现
           return null;
       }
  5. }

方式3:创建一个类继承ActionSupport类

  1. package com.struts2.action;
  2. import com.opensymphony.xwork2.ActionSupport;
  3. //该类已经实现了Validateable, ValidationAware, TextProvider, LocaleProvider接口
    //当项目需要使用这些接口时,不需要自己来实现
    public class Demo3 extends ActionSupport{
       //具体方法
    }

3、通过form表单测试Struts2应用小实例

(1)、新建项目ExamplePeoject,导入所需要的jar包,搭建Struts2开发环境,如下图:

(2)、在WebContent目录下分别建一个index.jsp访问文件、success.jsp跳转文件、failure.jsp跳转文件,具体代码如下:

index.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
       pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>首页</title>
    </head>
    <body>
       <h1>Struts2项目测试实例</h1>
       <form action="${pageContext.request.contextPath}/example" method="post">
           <table>
               <tr>    
                   <td>输入测试内容:<input type="text" name="content" id="content"></td>
                   <td><input type="submit" value="点击测试"></td>
               </tr>
           </table>
       </form>
    </body>
    </html>

success.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
       pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>跳转页</title>
    </head>
    <body>
       <h1>页面成功跳转,Struts2实例项目测试成功!</h1>
    </body>
    </html>

failure.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
       pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>跳转页</title>
    </head>
    <body>
       <h1>页面跳转成功,但输入内容不正确!</h1>
    </body>
    </html>

(3)、配置struts.xml文件,具体代码如下:

struts.xml

  1. <?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>
  2.    <package name="test" namespace="/" extends="struts-default" >
  3.        <action name="example" class="com.struts2.action.ExampleAction" method="test" >
               <result name="success">/success.jsp</result>
               <result name="failure">/failure.jsp</result>
           </action>
       </package>
    </struts>

(4)、新建Action类ExampleAction.java,具体代码如下:

ExampleAction.java

  1. package com.struts2.action;
  2. import com.struts2.domain.Content;
  3. public class ExampleAction {
       //定义内容属性
       private String content;
  4.    public String getContent() {
           return content;
       }
  5.    public void setContent(String content) {
           this.content = content;
       }
  6.    public String test(){
  7.        //获取客户端内容,并进行内容判断
           if(getContent()!=null){
               if(getContent().equals("Struts2"))
                   return "success";
           }
           return "failure";
       }
    }

(5)、发布项目到Tomcat容器,然后到浏览器地址栏测试,结果如下:

跳转到首页:

输入Struts2进行测试:

输入Struts进行测试:

(6)、该实例项目访问流程,如图所示:

 

本项目运行环境:jdk1.7、Tomcat7.0

关注微信公众号compassblog,后台回复 “Struts2系列二” 获取本项目源码

本系列后期仍会持续更新,欢迎关注!

如果你认为这篇文章有用,欢迎转发分享给你的好友!

本号文章可以任意转载,转载请注明出处!

您可能还喜欢:

扫码关注微信公众号,了解更多

【SSH框架】之Struts2系列(二)的更多相关文章

  1. struts2系列(二):struts2参数传递错误、struts2的输入错误验证

    一.struts2参数传递错误 1. 基本数据类型的传递最好使用包装类,原因是struts 2.1之后使用基本数据类型如果参数为空会报错2. 日期参数的传递最好定义一个区域的属性(定义locale), ...

  2. 搭建SSH框架整合Struts2和Spring时,使用@Autowired注解无法自动注入

    © 版权声明:本文为博主原创文章,转载请注明出处 1.问题描述: 搭建SSH框架,在进行Struts2和Spring整合时,使用Spring的@Autowired自动注入失败,运行报错java.lan ...

  3. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:SSH框架(Struts2+Spring+Hibernate)搭建整合详细步骤

    在实际项目的开发中,为了充分利用各个框架的优点,通常都会把 Spring 与其他框架整合在一起使用. 整合就是将不同的框架放在一个项目中,共同使用它们的技术,发挥它们的优点,并形成互补.一般而言,在进 ...

  4. SSH框架之Struts2第一篇

    1.2 Struts2的概述 : Struts2是一个基于MVC设计模式的WEB层的框架. 1.2.1 常见web层框架 Struts1,Struts2,WebWork,SpringMVC Strut ...

  5. SSH框架学习------struts2前后台传值(二)

    struts2的Action类一般都会继承(extends)ActionSupport类(Action类,即实现action的类)1.前传后:jsp里<input type="text ...

  6. Java框架之Struts2(二)

    一.Action 配置说明 //请求的直接转发 <package name="packageUser" namespace="" extends=&quo ...

  7. SSH框架之hibernate《二》

    Hibernate第二天     一.hibernate的持久化类和对象标识符         1.1持久化类的编写规范             1.1.1什么是持久化类:               ...

  8. SSH框架之Struts2第二篇

    1.2 知识点 1.2.1 Struts2的Servlet的API的访问 1.2.1.1 方式一 : 通过ActionContext实现 页面: <h1>Servlet的API的访问方式一 ...

  9. 框架SpringMVC笔记系列 二 传值

    主题:SpringMVC(第一节中再回顾复习一次) 学习资料参考网址: 1.http://www.icoolxue.com 2.http://haohaoxuexi.iteye.com/blog/13 ...

  10. SSH框架入门学习之二(spring)

    Spring也是一个开源框架,我在学习Spring的时候,认为最重要的几点是:IOC(控制反转).AOP(面向切面)和容器概念. 详细的教程还请大家去看网上的视频,这里贴一个小Demo以供学习. (前 ...

随机推荐

  1. [国嵌笔记][008-009][远程登录Linux]

    [国嵌笔记][008][远程登录Linux] 1.windows与Linux能够相互ping通 2.关闭Linux防火墙 /etc/init.d/iptables stop 3.通过ssh(字符界面) ...

  2. 通过Git Gui Here上传本地项目到GitHub上

    要使用此种方法上传本地项目到GitHub上,前提得是你已安装Git for window工具. Git for window下载地址:http://www.xp510.com/xiazai/Appli ...

  3. PHPMailer发送邮件失败:SMTP connect failed

    标签: PHPMailersmtp邮件服务器邮件发送失败 2015-05-22 19:29 1755人阅读 评论(0) 收藏 举报 分类: Apache php+mysql(2) 版权声明:本文为博主 ...

  4. 教你搭建你自己的Git服务器

    http://lib.csdn.net/article/git/50086 导读 现在我们将要学习如何搭建 git 服务器,如何编写自定义的 Git 钩子来在特定的事件触发相应的动作(例如通知),或者 ...

  5. Mysql Index extends优化

    Innodb通过自动把主键列添加到每个二级索引来扩展它们: CREATE TABLE t1 ( i1 , i2 , d DATE DEFAULT NULL, PRIMARY KEY (i1, i2), ...

  6. linux nvme的sendfile流程

    在nvme的硬盘上使用sendfile系统调用,到底需要经过哪些流程? do_sendfile--->do_splice_direct-->splice_direct_to_actor-- ...

  7. Linux系统shell编程自学_第一章基础

    第一章 基础shell的优势在于处理操作系统底层的业务,Python,php的优势在于开发运维工具,web界面的管理工具以及web业务开发.处理一键安装.优化.报警脚本shell又叫命令解释器,它能识 ...

  8. js 抛物线 笔记备份

    var funParabola = function(element, target, options) { /* * 网页模拟现实需要一个比例尺 * 如果按照1像素就是1米来算,显然不合适,因为页面 ...

  9. 流API--使用并行流

    这篇博客一起来研究下使用并行流.借组多核处理器并行执行代码可以显著提高性能,但是并行编程可能十分复杂且容易出错,流API提供的好处之一是能够轻松可靠的并行执行一些操作.请求并行处理流,首先要获得一个并 ...

  10. AM解调的FPGA实现

    一.说明: 功能:AM解调 平台:Vivado 2016.4 和 Matlab R2017a 二.原理: 1.AM解调原理 模拟电路中采用"包络检波"的方法: 数字电路中采用类似的 ...