s2sh框架搭建的action不用return返回jsp页面

用s2sh做的网站我用action直接return返回到jsp页面,老板说用mvc设计模式搭建,用return返回数据过多的话会访问慢,
有没有其他方法action传到jsp,最好有个小项目增删改查,我用的oracle数据库

4个回答

没人吗?就是运行服务器加快

可以试一下ajax的交互吧,不用一整个刷新页面,需要哪块的数据就写个ajax去请求就行

qq_33322010
致命3 邮箱351270920@qq.com
大约 3 年之前 回复
qq_33322010
致命3 有啥小项目吗吧增删改查功能写了就行
大约 3 年之前 回复

struts2支持Ajax
1、用maven导入包的坐标,其相关包会自动加入(这里的其他包是struts2-json-plugin所用到的包)

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-json-plugin</artifactId>
    <version>2.3.8</version>
</dependency>

这里要注意Struts和此包的相应版本

2.配置strutsxml文件,例如:

 <struts>
    <package name="user" namespace="/user" extends="json-default">
        <action name="login" class="loginAction" method="login">
            <result name="success" type="json">
                <param name="root">jsonResult</param>
            </result>
        </action>
    </package>
</struts>

继承的是json-default,会调用LoginAction里面的login()方法,方法返回success字符串,jsonResult是Action的成员变量,可以是自定的类型,action返回的名为jsonResult的json对象传递给页面。
3.Action类

package wut.xxw.action;
import javax.annotation.Resource;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import wut.xxw.entity.User;
import wut.xxw.service.UserService;
import wut.xxw.utli.JsonResult;

@Controller
@Scope("prototype")
public class LoginAction {
    @Resource
    private UserService userService;

    private String name;
    private String password;
    private JsonResult jsonResult = new JsonResult();

    public String getName() {
        return name;
    }

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

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public JsonResult getJsonResult() {
        return jsonResult;
    }

    public void setJsonResult(JsonResult jsonResult) {
        this.jsonResult = jsonResult;
    }

    public String login(){
        try {
            User user = userService.login(name, password);
            jsonResult.setData(user);
            jsonResult.setState(0);
            return "success";
        } catch (Exception e) {
            jsonResult.setMessage(e.getMessage());
            jsonResult.setState(1);
            return "success";
        }

    }
}

这里和struts.xml中用的Spring的注解,所以struts.xml文件中类写的是Action的默认实例化名称,而不是包名加类名,然后我定义了自定义的JsonResult类型.
4. JsonResult类

 package wut.xxw.util;

public class JsonResult {
    private final static int SUCCESS = 0;
    private final static int ERROR = 1;

    private int state;
    private Object data;
    private String message;

    public JsonResult() {
        super();
    }

    public JsonResult(Throwable e) {
        state = ERROR;
        data = null;
        message = e.getMessage();
    }

    public JsonResult(Object object) {
        state = SUCCESS;
        data = object;
        message = "";
    }

    public int getState() {
        return state;
    }

    public void setState(int state) {
        this.state = state;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    @Override
    public String toString() {
        return "JsonResult [state=" + state + ", data=" + data + ", message=" + message + "]";
    }

}

data变量是所要传递给页面的数据。jsonResult会在页面自动转化为JSON对象,用JS或jQuery操作。

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问