怎么我的页面接收不到action传递过来的response.getWriter().print()呢?
如题,我的action已经能够成功连接到hibernate进行查询,就是查询结果不能通过response.getWriter()传递到页面。请问是什么原因呢?
下面是我的action和页面的部分代码。。。请帮忙看看。。。
action:
package com.btaxi.action;
import java.io.IOException;
import com.opensymphony.xwork2.ActionSupport;
import com.btaxi.service.UserService;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
public class LoginAction extends ActionSupport implements ServletResponseAware, ServletRequestAware{
private String uName, uPwd;
private UserService userService;
private HttpServletRequest request;
private HttpServletResponse response;
public String getUName() {
return uName;
}
public void setUName(String name) {
uName = name;
}
public String getUPwd() {
return uPwd;
}
public void setUPwd(String pwd) {
uPwd = pwd;
}
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public HttpServletRequest getRequest() {
return request;
}
public void setRequest(HttpServletRequest request) {
this.request = request;
}
public HttpServletResponse getResponse() {
return response;
}
public void setResponse(HttpServletResponse response) {
this.response = response;
}
@Override
public String execute() {
int user = userService.Login(uName, uPwd);
try {
if(user ==1){
HttpSession session = request.getSession();
session.setAttribute("user", user);
response.getWriter().print("<login><info>1</info></login>");
System.out.println(user + 1);
}else{
response.getWriter().print("<login><info>0</info></login>");
System.out.println("have not this user");
}
} catch (IOException e) {
e.printStackTrace();
}
return SUCCESS;
}
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
}
flex:
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.controls.Alert;
public function resultHandle(event:ResultEvent): void{
usersName.text=userLoginSev.lastResult.login.info;
}
public function faultHandle(event:FaultEvent): void{
usersName.text=userLoginSev.lastResult.login.info;
}
]]>
</mx:Script>
<mx:HTTPService id="userLoginSev" method="post" url="FlexERP/login.action"
result="resultHandle(event)"
fault="faultHandle(event)">
<mx:request xmlns="">
<uName>{uName.text}</uName>
<uPwd>{uPwd.text}</uPwd>
</mx:request>
</mx:HTTPService>
[解决办法]
这样试试
usersName.text=userLoginSev.lastResult.login.info;
换成
var xml:XML = XML(userLoginSev.lastResult);// 可以debug看一下xml是否有值
usersName.text= xml.info;
如果上面var xml:XML = XML(userLoginSev.lastResult);得不到值,可能是java端有问题
[解决办法]
你debug看看是否有结果
[解决办法]