struts2结合ajax能够成功返回json数据,但是会报个unknown-location,何解

Logan_Su 2016-06-03 09:19:43
能够成功返回数据,但是报以下错误:(我的文件里面根被没有设置有undefined这个action)
There is no Action mapped for namespace [/] and action name [undefined] associated with context path [/TestVideo]. - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185)
at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:37)
at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:554)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:81)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
...全文
71 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Logan_Su 2016-06-03
  • 打赏
  • 举报
回复
经过一番查询之后我,我已经搞定了,可能是因为json里面有空值,在html页面里面我设置有<img src="xxx" />,而从数据库里面取出来的src有null,其它信息为null的时候是没有警告信息的,仅仅是对src有影响!!!!
Logan_Su 2016-06-03
  • 打赏
  • 举报
回复
struts.xml配置:

<package name="json" extends="json-default">
        <action name="indexAction" class="ssh.action.Index">
			<result name="success" type="json">
                <param name="root">result</param> 
			</result>
			<!-- <result name="success">/index.jsp</result> -->	
		</action>
</package>
Logan_Su 2016-06-03
  • 打赏
  • 举报
回复
action如下:

public class Index extends ActionSupport {
	private Iservice service;
	private List<Video> all;
	private String result;
	
	@SuppressWarnings("unchecked")
	public String execute() {
		JSONArray ja = new JSONArray();
		try {
			//罗列出最新添加的视频
			this.all = this.service.readByPropertyAndLimitByOrder("Video", "time", "desc", 8);
			JSONObject jo = null;
			for (Video v: this.all) {
				jo = new JSONObject();
				jo.put("id", v.getId());
				jo.put("name", v.getName());
				jo.put("intro", v.getIntro());
				jo.put("author", v.getAuthor());
				jo.put("url", v.getUrl());
				jo.put("thumbnailurl", v.getThumbnailurl());
				jo.put("time", v.getTime().toString());
				ja.add(jo);
			}
				
			this.result = ja.toString();
			System.out.println(this.result);
			return "success";
		} catch (Exception e) {
			e.printStackTrace();
			return "error";
		}
	}

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧