用s2sh做的网站我用action直接return返回到jsp页面,老板说用mvc设计模式搭建,用return返回数据过多的话会访问慢,
有没有其他方法action传到jsp,最好有个小项目增删改查,我用的oracle数据库
没人吗?就是运行服务器加快
可以试一下ajax的交互吧,不用一整个刷新页面,需要哪块的数据就写个ajax去请求就行
去试试
http://blog.csdn.net/je_ge/article/details/53365189
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操作。