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

相关文章

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

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

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

mysql中insert into的基本用法和一些示例

《mysql中insertinto的基本用法和一些示例》INSERTINTO用于向MySQL表插入新行,支持单行/多行及部分列插入,下面给大家介绍mysql中insertinto的基本用法和一些示例... 目录基本语法插入单行数据插入多行数据插入部分列的数据插入默认值注意事项在mysql中,INSERT I

mapstruct中的@Mapper注解的基本用法

《mapstruct中的@Mapper注解的基本用法》在MapStruct中,@Mapper注解是核心注解之一,用于标记一个接口或抽象类为MapStruct的映射器(Mapper),本文给大家介绍ma... 目录1. 基本用法2. 常用属性3. 高级用法4. 注意事项5. 总结6. 编译异常处理在MapSt

MyBatis ResultMap 的基本用法示例详解

《MyBatisResultMap的基本用法示例详解》在MyBatis中,resultMap用于定义数据库查询结果到Java对象属性的映射关系,本文给大家介绍MyBatisResultMap的基本... 目录MyBATis 中的 resultMap1. resultMap 的基本语法2. 简单的 resul

Java 枚举的基本使用方法及实际使用场景

《Java枚举的基本使用方法及实际使用场景》枚举是Java中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Jav... 目录一、什么是枚举?二、枚举的基本使用方法定义枚举三、实际使用场景代替常量状态机四、更多用法1.实现接

git stash命令基本用法详解

《gitstash命令基本用法详解》gitstash是Git中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改,这篇文章主要... 目录一、基本用法1. 保存当前修改(包括暂存区和工作区的内容)2. 查看保存了哪些 stash3. 恢

MySQL基本查询示例总结

《MySQL基本查询示例总结》:本文主要介绍MySQL基本查询示例总结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Create插入替换Retrieve(读取)select(确定列)where条件(确定行)null查询order by语句li

Python 异步编程 asyncio简介及基本用法

《Python异步编程asyncio简介及基本用法》asyncio是Python的一个库,用于编写并发代码,使用协程、任务和Futures来处理I/O密集型和高延迟操作,本文给大家介绍Python... 目录1、asyncio是什么IO密集型任务特征2、怎么用1、基本用法2、关键字 async1、async