前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Struts2——核心知识

Struts2——核心知识

作者头像
程序员的时光001
发布2020-07-14 16:49:19
2550
发布2020-07-14 16:49:19
举报
文章被收录于专栏:程序员的时光程序员的时光

1,Struts2中get/set自动获取/设置数据

比如先在Action类里面添加一个name属性并加上get/set方法;

代码语言:javascript
复制
package com.java.action;

import com.opensymphony.xwork2.Action;

public class HelloWorld implements Action {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String execute() throws Exception {

        System.out.println("执行了action的默认方法");
        return SUCCESS;
    }
}

然后我们在页面上再加上获取属性的代码;

代码语言:javascript
复制
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  ${name}&nbsp;Struts2
  </body>
</html>

我们来测试一下看看后台能否获取到属性:

运行项目之后:

2,ActionSupport类引入

我们可以继承自ActionSupport类,修改如下:

代码语言:javascript
复制
package com.java.action;

import com.opensymphony.xwork2.ActionSupport;


public class HelloWorld extends ActionSupport {


    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String execute() throws Exception {

        System.out.println("执行了ActionSupport的默认方法");
        return SUCCESS;
    }
}

运行出来是同样的结果;

3,Action设置数据

属性驱动

先建立一个user实体类;

代码语言:javascript
复制
package com.java.model;

public class User {

    private String userName;
    private String passWord;

    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;
    }
}

写一个简单的登录页面;

代码语言:javascript
复制
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="user" method="post">
    用户名:<input type="text" name="userName"/>
    密码:<input type="text" name="passWord"/>
    <input type="submit" value="登录"/>
</form>
</body>
</html>

数据访问层service;

代码语言:javascript
复制
package com.java.service;

import com.java.model.User;

public class UserService {

    public boolean login(User user){
        if("java".equals(user.getUserName()) && "123".equals(user.getPassWord())){
            return true;
        } else{
            return false;
        }
    }
}

处理类Action;

代码语言:javascript
复制
package com.java.action;

import com.java.model.User;
import com.java.service.UserService;
import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {

    private UserService userService=new UserService();

    private String userName;
    private String passWord;

    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;
    }

    @Override
    public String execute() throws Exception {
        System.out.println("默认执行了User方法");
        User user=new User();
        user.setUserName(userName);
        user.setPassWord(passWord);
        if(userService.login(user)){
            return SUCCESS;
        } else{
            return ERROR;
        }
    }
}

struts.xml配置;

代码语言:javascript
复制
<action name="user" class="com.java.action.UserAction">
         <result name="success">success.jsp</result>
         <result name="error">error.jsp</result>
      </action>

运行之后就可以成功!

JavaBean属性

UserAction类;

代码语言:javascript
复制
package com.java.action;

import com.java.model.User;
import com.java.service.UserService;
import com.opensymphony.xwork2.ActionSupport;

public class UserAction2 extends ActionSupport {

    private UserService userService=new UserService();

    private User user;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    @Override
    public String execute() throws Exception {
        System.out.println("默认执行了User方法");
        if(userService.login(user)){
            return SUCCESS;
        } else{
            return ERROR;
        }
    }
}

登录界面修改一下;

代码语言:javascript
复制
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="user2" method="post">
    用户名:<input type="text" name="user.userName"/>
    密码:<input type="text" name="user.passWord"/>
    <input type="submit" value="登录"/>
</form>
</body>
</html>

就可以了!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员的时光 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1,Struts2中get/set自动获取/设置数据
  • 2,ActionSupport类引入
  • 3,Action设置数据
    • 属性驱动
      • JavaBean属性
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档