• struts2注解


    1.struts的动作方法可以为void,没有结果视图,在动作方法中将json数据输出到页面中。

    public void ajaxUsers(){

      response.getWriter().print();

    }

    2.使用注解的jar包:

    struts-convention-plugin.jar

    asm.jar

    asm-commons.jar

    3.使用注解:

     

    (1)@Action

    (2)@Actions({@Action()})

    (3)@NameSpace

    (4)@ParentPackage

    (5)@Result

    params={"key1", "value1", "key2", "value2"})

       直接上代码:

    <struts>
        <constant name="struts.devMode" value="true" />
        <constant name="struts.i18n.encoding" value="UTF-8" />
        <constant name="struts.action.extension" value="do,," />
    
        <!--拦截器-->
        <package name="my-default" extends="json-default" abstract="true">
            <interceptors>
                <interceptor name="loginInterceptor" class="cn.getword.interceptor.LoginInterceptor" />
                <interceptor-stack name="my_intercept_stack">
                    <interceptor-ref name="loginInterceptor" />
                    <interceptor-ref name="defaultStack" />
                </interceptor-stack>
            </interceptors>
    
            <default-interceptor-ref name="my_intercept_stack" />
    
            <global-results>
                <result name="login" type="redirect">/login2</result>
            </global-results>
        </package>
    </struts>
    struts.xml
    package cn.getword.action;
    
    import cn.getword.domain.User;
    import cn.getword.service.UserService;
    import com.opensymphony.xwork2.ActionSupport;
    import com.opensymphony.xwork2.ModelDriven;
    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 javax.servlet.http.HttpServletRequest;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    
    @Controller
    @ParentPackage("my-default")
    @Namespace("/user")
    public class UserAction extends ActionSupport implements ModelDriven<User> {
        @Autowired
        private UserService userService;
        private User user = new User();
    
        private int rs;
        Map<String, Boolean> result;
    
        @Action(value = "add", results = {@Result(location = "/WEB-INF/views/addUser.jsp")})
        public String addUser() {
            return SUCCESS;
        }
    
        @Action(value = "addPro", results = {
                @Result(name = "success",type = "json", params = {"contetType","application/json", "root", "rs"})})
        public String addUserPro() {
            user.setRegisterTime(new Date());
            rs = userService.addUser(user);
            return SUCCESS;
        }
    
        @Action(value = "update", results = {@Result(location = "/WEB-INF/views/updateUser.jsp")})
        public String updateUser() {
            HttpServletRequest request = ServletActionContext.getRequest();
            User user1 = userService.getUserById(user.getId());
            request.setAttribute("user", user1);
            return SUCCESS;
        }
    
        @Action(value = "updatePro", results = {
                @Result(name = "success",type = "json", params = {"contetType","application/json", "root", "rs"})})
        public String updateUserPro() {
            rs = userService.updateUser(user);
            return SUCCESS;
        }
    
        @Action(value = "checkUsername", results = {
                @Result(name = "success",type = "json", params = {"contetType","application/json", "root", "result"})})
        public String checkUsername() {
            User user1 = userService.getUserByUsername(user.getUsername());
            result = new HashMap<String, Boolean>();
            if (user1 != null) {
                result.put("valid", false);
            } else {
                result.put("valid", true);
            }
            return SUCCESS;
        }
    
        @Action(value = "delete", results = {
                @Result(name = "success",type = "json", params = {"contetType","application/json", "root", "rs"})})
        public String deleteUser() {
            if (userService.deleteUser(user.getId())) {
                rs = 1;
            } else {
                rs = 0;
            }
            return SUCCESS;
        }
    
        //======================
        @Override
        public User getModel() {
            return user;
        }
    
        public void setUserService(UserService userService) {
            this.userService = userService;
        }
    
        public int getRs() {
            return rs;
        }
    
        public void setRs(int rs) {
            this.rs = rs;
        }
    
        public Map<String, Boolean> getResult() {
            return result;
        }
    
        public void setResult(Map<String, Boolean> result) {
            this.result = result;
        }
    }
    UserAction.java

    end

  • 相关阅读:
    CentOS7 安装 ElasticSearch7
    非易失性规划的原理与实现方法
    CV Recognition: From AlexNet To Inceptionv4
    有趣的Cache创新@HotChips'33
    计算架构的演进
    集合通信行为分析 基于NCCL
    Performance Scaling Laws
    单机互联拓扑获取 软件方式
    Operator Numerical Check
    论文笔记 — Learning to Collaborate: MultiScenario Ranking via MultiAgent Reinforcement Learning
  • 原文地址:https://www.cnblogs.com/zhuxiang1633/p/9724534.html
Copyright © 2020-2023  润新知