Struct2 helloworld及基本action

2024-03-10 00:58

本文主要是介绍Struct2 helloworld及基本action,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Struct2 helloworld及基本action

struct2不再跟struct一样依赖于Servlet API和Struts API,提供了拦截器,类型转换器,且提供了jsp,freemaker等表现层技术

1.web.xml
struct2基本的web.xml配置如下

<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern>      */</filter-mapping>
</web-app>

action默认的配置

<struts><package name="default" namespace="/" extends="struts-default"><!- 指明action具体的类-!><action name="/" class="..."><result name="success">/hello.jsp</result><result name="error">/error.jsp</result></action></package>
</struts>


1>action默认的class是ActionSupport。
2>如果没有为action指定method,默认执行action中的execute() 方法。
3>result的name属性默认值为success。

如下是一个简单的struct2实现action的登录(成功显示书籍资料)

1.booklist类

package csc.struts2.booklist;public class Booklist {String[] books=new String[]{"java入门到死亡","PHP世界最好语言","垃圾net毁一生","ssh框架"};public String[] getall(){return books;}
}

2.action接口形式,result的默认name主要一下几种

package csc.struts2.interf;public interface Action {public static final String SUCCESS="success";public static final String ERROR="error";public static final String NONE="none";public static final String INPUT="input";public static final String LOGIN="login";//默认的action方法public String execute() throws Exception;
}

3.实现action

package csc.struts2.booklist;import com.opensymphony.xwork2.ActionContext;import csc.struts2.interf.Action;public class userlist implements Action{private String username;private String password;private String[] book;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String[] getBook() {return book;}public void setBook(String[] book) {this.book = book;}@Overridepublic String execute() throws Exception {//获取用户名String username=(String) ActionContext.getContext().getSession().get("user");if ( username!=null&&getUsername().equals(username)){//存book[]Booklist books=new Booklist();setBook(books.getall());return SUCCESS;}else {return ERROR;}}}

已jsp做表现层

<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html><head><title></title></head><body><form action="show.action"><p>用户名<input type="text" name="username" value=""><br><p>密码<input type="text" name="password"></p><br /><input type="submit" value="登录" /></form>   </body>
</html>

struct2.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><!-- 书籍 --><package name="default" namespace="/" extends="struts-default"><action name="show" class="csc.struts2.booklist.userlist"><result name="success">/showbook.jsp</result><result name="error">/error.jsp</result></action></package>
</struts>

注:
ActionSupport类的作用
struts2不要求我们自己设计的action类继承任何的struts基类或struts接口,
但是我们为了方便实现我们自己的action,大多数情况下都会
继承com.opensymphony.xwork2.ActionSupport类,并重写此类里的
public String execute() throws Exception方法。
因为此类中实现了很多的实用借口,提供了很多默认方法,这些默认方法包括国际化信息的方法、默认的处理用户请求的方法等,这样可以大大的简化Acion的开发。

这篇关于Struct2 helloworld及基本action的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/792501

相关文章

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

Java调用Python脚本实现HelloWorld的示例详解

《Java调用Python脚本实现HelloWorld的示例详解》作为程序员,我们经常会遇到需要在Java项目中调用Python脚本的场景,下面我们来看看如何从基础到进阶,一步步实现Java与Pyth... 目录一、环境准备二、基础调用:使用 Runtime.exec()2.1 实现步骤2.2 代码解析三、

DNS查询的利器! linux的dig命令基本用法详解

《DNS查询的利器!linux的dig命令基本用法详解》dig命令可以查询各种类型DNS记录信息,下面我们将通过实际示例和dig命令常用参数来详细说明如何使用dig实用程序... dig(Domain Information Groper)是一款功能强大的 linux 命令行实用程序,通过查询名称服务器并输

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁