// 重定向
@Ok(">>:/user/login.action")
nutz可以重定向到action吗?
@IocBean
@At("/screen/price")
public class ScreenController {
@At("/priceLook")
public View priceLook(){
return new VelocityLayoutView("screen/price.html");
}
}
可以用下面的方法直接重定向到上面的方法吗?
@At("/getPrice")
@Ok(">>:/screen/price/priceLook")
public String getPrice(HttpServletRequest request,HttpServletResponse response) {
return "ok";
}
public int callPrice(){
HttpClientPostMethod client = new HttpClientPostMethod();
List parameters = new ArrayList<>();
int result=client.post(price parameters);
client.destory();
return result;
}
下面是httpclient 的response的内容: Location的url 就是要重定向的url
HTTP/1.1 302 Found [Server: Apache-Coyote/1.1, X-Powered-By: nutz/1.r.57.r3 <nutzam.com>, Location: /cms/screen/price/priceLook, Content-Length: 0, Date: Tue, 13 Jun 2017 07:57:57 GMT] org.apache.http.conn.BasicManagedEntity@6e525f92
@wendal 刚刚看了你上面的回复,如果是ajax访问的话是不能用重定向的吗,因为我是ajax访问的,然后一直无法重定向到登录界面
@wendal 我想要不管是ajax访问还是url访问,我只要判断到它没有权限,然后就直接重定向到登录界面,能给个解决方案吗
@wendal 直接重写去掉ajax的判断不管用
protected void whenUnauthenticated(ActionContext ac, UnauthenticatedException e) throws Exception {
if (NutShiro.isAjax(ac.getRequest())) {
ac.getResponse().addHeader("loginStatus", "accessDenied");
NutShiro.rendAjaxResp(ac.getRequest(), ac.getResponse(), ajaxFail("user.require.login", "user.require.login"));
} else {
new ServerRedirectView(loginUri()).render(ac.getRequest(), ac.getResponse(), null);
}
}