Struts2 注解详解
来源:互联网 发布:票务系统源码 php 编辑:程序博客网 时间:2024/06/03 22:47
使用注解来配置Action的最大好处就是可以实现零配置,但是事务都是有利有弊的,使用方便,维护起来就没那么方便了。
要使用注解方式,我们必须添加一个额外包:struts2-convention-plugin-2.x.x.jar。
虽说是零配置的,但struts.xml还是少不了的,配置如下:
<?xml version="1.0" encoding="UTF-8"?><!--加载约束文件 --><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN""http://struts.apache.org/dtds/struts-2.5.dtd"><!--进行struts2的配置 --><struts><!-- 请求参数的编码方式 --><constant name="struts.i18n.encoding" value="UTF-8" /><!-- 指定被struts2处理的请求后缀类型。多个用逗号隔开 --><!-- <constant name="struts.action.extension" value="action,do,htm" /> --><!-- 当struts.xml改动后,是否重新加载。默认值为false(生产环境下使用),开发阶段最好打开 --><constant name="struts.configuration.xml.reload" value="true" /><!-- 是否使用struts的开发模式。开发模式会有更多的调试信息。默认值为false(生产环境下使用),开发阶段最好打开 --><constant name="struts.devMode" value="true" /><!-- 设置浏览器是否缓存静态内容。默认值为true(生产环境下使用),开发阶段最好关闭 --><constant name="struts.serve.static.browserCache" value="false" /><!-- 指定由spring负责action对象的创建--> <constant name="struts.objectFactory" value="spring"/> <!-- 是否开启动态方法调用 --><constant name="struts.enable.DynamicMethodInvocation" value="false" /></struts>
Action类注解
package com.zzh.web.action;import java.io.IOException;import java.util.ArrayList;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;import org.apache.struts2.convention.annotation.Action;import org.apache.struts2.convention.annotation.Namespace;import org.apache.struts2.convention.annotation.ParentPackage;import org.apache.struts2.convention.annotation.Result;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import com.alibaba.fastjson.JSON;import com.opensymphony.xwork2.ModelDriven;import com.zzh.domain.Worker;import com.zzh.service.WorkerService;/** * @author zzh * @Version 1.0 * @Date 2017年10月27日 * @备注 */@Controller@ParentPackage(value="struts-default")@Namespace("/")public class WorkerAction implements ModelDriven<Worker>{@Autowiredprivate WorkerService workerService;//参数 Worker worker = new Worker();@Overridepublic Worker getModel() {// TODO Auto-generated method stubreturn worker;}//其他的参数 当其他参数是 类中的属性的 一部分时 不要这样写 会获取不到 他会自动赋值到worker中private int flag;public int getFlag() {return flag;}public void setFlag(int flag) {this.flag = flag;}@Action(value="addWorker",results={@Result(name="worker",location="/worker.jsp")})public String addWorker() {// 获取响应//HttpServletResponse response = ServletActionContext.getResponse();// 获取请求//HttpServletRequest request = ServletActionContext.getRequest();System.out.println(flag);System.out.println(worker);workerService.addWorker(worker);return "worker";}@Action(value="findAllWorker",results={@Result(name="findAllWorker",location="/worker.jsp")})public String findAllWorker(){// 获取请求HttpServletRequest request = ServletActionContext.getRequest();System.out.println(workerService.findAllWorker().size());request.setAttribute("workers", workerService.findAllWorker());return "findAllWorker";}@Action(value="removeWorker",results={@Result(name="removeWorker",location="/worker.jsp")})public String removeWorker(){System.err.println(worker.getId());System.err.println(flag);workerService.removeWorkerById(worker.getId());findAllWorker();return "removeWorker";}//测试 如果想返回JSON格式数据 改怎么处理@Action(value="resJSON",results={})public void json() throws IOException{List<Worker> list = new ArrayList<>();for (int i = 0; i < 10; i++) {Worker worker=new Worker();worker.setAge(10);worker.setName("王五");list.add(worker);}HttpServletResponse response = ServletActionContext.getResponse();response.setContentType("application/json;UTF-8");response.getWriter().print(JSON.toJSONString(list));}}
阅读全文
0 0
- struts2注解详解
- Struts2注解详解
- Struts2 注解详解
- 示例详解struts2的注解
- Maven 实现Struts2注解配置步骤详解
- struts2的json插件详解 注解
- Maven 实现Struts2注解配置步骤详解
- struts2注解
- struts2注解
- struts2 注解
- struts2 注解
- struts2注解
- struts2注解
- struts2注解
- struts2注解
- Struts2注解
- struts2注解
- struts2注解
- 探索深入理解java虚拟机之java内存区域解析(1)
- Django官方教程(二)【快速安装指南】
- JDBC练习题—Dao练习
- 常见的七种排序算法解析(转载)
- Java编程:Comparable和Comparator用法比较
- Struts2 注解详解
- Hive学习3:Hive三种建表语句详解
- mysql拼接字符串
- 蓦然认知戴帅湘:我曾经想过在百度做到退休
- android 使用OPENGL ES实现纹理拉伸效果-纹理映射基础
- 百度度秘事业部成立美国硅谷研发团队,打响AI人才军备战
- VitualBox中Ubuntu的共享粘贴板、拖放和共享文件夹
- 京东JData算法大赛落幕,AI人才争夺进入“跑马圈地”时代?
- Surface手机视频不慎泄露!Windows Mobile分支系统是真的?