我正在尝试使用struts和jquery构建一个Web应用程序。
在更改下拉列表时,我需要从数据库中获取详细信息。在我的struts.xml配置中,我已经定义了方法和操作,如下所示:
<result name="addressChange">
<param name="root">requestBean</param>
</result>
当我在所有相应位置进行更改后执行应用程序时,请求被传递给Action类和DAO方法,控件将成功返回到屏幕。但是返回的数据在屏幕上不可用,我收到一条错误消息:
url ...在jquery中找不到404(匿名函数)ajax。
由于我有一些其他的ajax调用,我对它们进行了比较,发现struts.xml中缺少结果类型,然后我也改变了它。它的工作正常。
<result name="addressForBrigade" type="json">
<param name="root">requestBean</param>
</result>
问题是:
答案 0 :(得分:1)
当您在结果中添加type="json"
时,第一个问题似乎已经回答了您自己。没有它,隐式使用"dispatcher"
类型。如果要返回带有响应的JSON对象,则应使用json
结果类型。您可以使用其他结果类型,这取决于您希望通过响应返回什么。
在将数据格式化为响应时指定Content-Type
header是有意义的。您不需要为不返回JSON对象的结果指定json
结果类型,使用其他结果类型,但您应该使用jQuery Ajax中的dataType
属性来指定您希望从服务器返回的数据类型。
每个结果类型由配置定义,并在执行时由调度程序选取。如果您没有指定结果类型,则使用"dispatcher"
结果类型,该类型调用请求调度程序转发到JSP以将其输出到响应。它只会生成一个HTML内容,您可以在浏览器源窗口中看到它。