//in action
String getUsername() {
return username;
}void setUsername(String username) {
this.username = username;
}
//in jsp<s:property value="username"/>这样用s标签可以得到username, 但是我现在想通过ajax(单纯的用javascript发送ajax不用任何jar)得到这个username
有什么办法呢? 比如 有没有可能通过这个网址 action_url/username或者类似的方式得到这个username?
主要就是想用于ajax我以前做asp.net的
public class HomeController : Controller
{
public ActionResult Home()
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application."; return View();
} public JSONResult getJson()
{
return JSON(new Object());
}
}
在asp.net的mvc里头 一个controller 可以有多个方法 对应不同的url
比如上述例子 controller_name/Home 就能进入一个网页 controller_name/getJson 就可以获得一段JSON
我就想struts2是不是也可以一个class 能否返回多种类型?
(不过后来我理解 asp.net的controller中的一个方法 对应struts中一个Action比如Home如果用Struts可以是HomeAction 而getJSON就变成另一个Action 不知道我理解对不对?)
解决方案 »
- 戴尔 N4030 XP系统 快捷键如何设置
- HttpServletRequest 方法 getParameterValues getParameterValue 获得的值不同!!!
- 很奇观的问题,不知道有人会不??????
- 面试题求解!!!!
- java怎么采集一个网站的文章,而且是按这个网站的文章ID采集文章内容
- tomcat4部署WAR文件的问题!急!!!
- 如果我想要自己的机器在网上能访问,需要什么条件?
- jdk1.4、weblogic7.0、Sqlserverr 2000中连结数据库的方法及使用方法
- 下拉菜单的连动问题
- 初学jsp,第一个程序就出了问题
- spring mvc 拦截请求没反应?
- 请教request.serverPort获取端口号错误
<package name="json" extends="json-default" namespace="">
<action name="actionName" class="com.*.*.test" method="test">
<result type="json">
<param name="includeProperties">username</param>
</result>
</action>
</package>
url/actionName.action 就能得到返回的json内容了,可以用ajax调用这个url
我的意思是actionName 返回网页 但是actionName/getUsername返回json (能否只在一个action实现)
我的意思是actionName 返回网页 但是actionName/getUsername返回json (能否只在一个action实现)可以PrintWriter out = ServletActionContext.getResponse().getWriter();
ServletActionContext.getResponse().setContentType("text/html;charset=UTF-8");
out.print(username);
out.close();
return null;
你在action那里直接response.getWriter().print(data);字符串,然后页面转换这个data字符串就可以了
你可以到我的博客那下载那开源项目看看里面是怎么实现的,没什么问题
我的意思是actionName 返回网页 但是actionName/getUsername返回json (能否只在一个action实现)可以PrintWriter out = ServletActionContext.getResponse().getWriter();
ServletActionContext.getResponse().setContentType("text/html;charset=UTF-8");
out.print(username);
out.close();
return null;你的那段java代码是放在execute吧 这样的话 虽然可以输出string 但是没法返回页面了啊
我的意思是能不能有2个execute
我现在的解决办法是
判断url, 如果url是actionname?act = getjson 的话就返回string 否则返回页面
我的意思是actionName 返回网页 但是actionName/getUsername返回json (能否只在一个action实现)可以PrintWriter out = ServletActionContext.getResponse().getWriter();
ServletActionContext.getResponse().setContentType("text/html;charset=UTF-8");
out.print(username);
out.close();
return null;你的那段java代码是放在execute吧 这样的话 虽然可以输出string 但是没法返回页面了啊
我的意思是能不能有2个execute
我现在的解决办法是
判断url, 如果url是actionname?act = getjson 的话就返回string 否则返回页面
不用判断url,你给url加个参数就行了比如/*.action?type=ajax 后台就用我上面那段代码,如果type=html后台代码判断下 if(type.equals("ajax")){ .... }else{ ... return SUCCESS }
还有想问下 怎么获得type呢? 有没有内置方法?
或者我需要ServletActionContext.getRequest().getParameter("type")?
企业里也是这么做的么?
我的意思是actionName 返回网页 但是actionName/getUsername返回json (能否只在一个action实现)可以PrintWriter out = ServletActionContext.getResponse().getWriter();
ServletActionContext.getResponse().setContentType("text/html;charset=UTF-8");
out.print(username);
out.close();
return null;你的那段java代码是放在execute吧 这样的话 虽然可以输出string 但是没法返回页面了啊
我的意思是能不能有2个execute
我现在的解决办法是
判断url, 如果url是actionname?act = getjson 的话就返回string 否则返回页面
不用判断url,你给url加个参数就行了比如/*.action?type=ajax 后台就用我上面那段代码,如果type=html后台代码判断下 if(type.equals("ajax")){ .... }else{ ... return SUCCESS }我明白了