当前位置: 首页 > 知识库问答 >
问题:

Struts2中使用jQueryAjax的结果类型JSON

澹台正业
2023-03-14

我正在尝试使用Struts 2和jQuery构建Web应用程序。

在改变下拉列表时,我需要从数据库中获取详细信息。在我的< code>struts.xml配置中,我将方法和操作定义如下:

<result name="addressChange">
    <param name="root">requestBean</param>
</result>

当我在所有相应位置进行更改后执行应用程序时,请求被传递给 Action 类和 DAO 方法,并且控件成功返回到屏幕。但是返回的数据在屏幕上不可用,我收到一条错误消息:

url…404未在jQuery中找到(匿名函数)ajax。

因为我有一些其他的ajax调用,所以我比较了它们,发现struts.xml中缺少结果类型,然后我做了同样的更改。它现在工作正常。

<result name="addressForBrigade" type="json">
    <param name="root">requestBean</param>
</result>

问题是:

    < Li > Struts如何将它标识为JSON对象,以及它如何将它覆盖到POJO? < li >在Struts 2中,什么时候应该使用JSON作为结果类型? < li >我们可以使用其他结果类型吗? < li >每当有AJAX调用时,我们是否需要将结果类型用作JSON?

共有1个答案

陆晓博
2023-03-14

当您将< code>type="json"添加到结果中时,似乎您已经回答了第一个问题。如果没有它,将隐式使用< code >“dispatcher”类型。如果希望返回带有响应的json对象,应该使用< code>json结果类型。您可以使用其他结果类型,这取决于您希望在响应中返回什么。

在将数据格式化为响应时指定Content-Type标头是有意义的。您不需要为不返回JSON对象的结果指定json结果类型,使用其他结果类型,但您应该使用jQuery Ajax中的dataType属性来指定您期望从服务器返回的数据类型。

每种结果类型都由配置定义,并在执行时由调度程序选取。如果没有指定结果类型,则使用< code >“dispatcher”结果类型,它调用请求调度程序转发给JSP,以便将其输出呈现给响应。它仅仅产生一个HTML内容,您可以在浏览器的源代码窗口中看到。

 类似资料:
  • 主要内容:分发结果类型:,FreeMaker结果类型:,重定向结果类型:正如前面提到的,<results>标签在Struts2的MVC框架的视图中所扮演的角色。动作是负责执行业务逻辑。执行业务逻辑后,接下来的步骤是使用<results>标签显示的视图。  经常有一些附带导航规则的结果。例如,如果在操作方法是对用户进行验证,有三种可能的结果。 (一)成功登录;(二)不成功的登录,用户名或密码错误;(三)帐户锁定。 在这种情况下的动作方法将被配置呈现的结果有三种可能的结果

  • 在Struts2应用程序中,我尝试使用Custome结果类型。但是我没有得到任何效果,我的JSP页面图像的动作没有得到调用。而且也没有例外得到。请纠正我哪里做错了。HTTPFox说404,但我在JAVA控制台没有得到任何东西。 HTML: XML:

  • 问题内容: 我有一个Struts2应用程序,在其中使用了Tiles。如何在操作映射中获得多种结果类型?因为我需要将de output设置为JSON数据,并将Tiles同时设置。我努力了: 但这不起作用 问题答案: 据我所知,无法同时返回多个事物。一旦完成所有切片操作,浏览器将只期望一件事,即JSON或HTML。 我可以想到两种方法来执行此操作:双重请求(每种结果类型一种)或使用一种方法生成另一种方

  • 在我的myBatis映射器xml文件中,结果列名为但是结果哈希图有 我想是吧在列名中可能会出现问题。这个问题有什么解决办法吗?

  • 如前所述, 《results》标签在Struts2 MVC框架中扮演view的角色。 该操作负责执行业务逻辑。 执行业务逻辑后的下一步是使用《results》标记显示视图。 通常会在结果中附加一些导航规则。 例如,如果操作方法是对用户进行身份验证,则有三种可能的结果。 成功登录 登录失败 - 用户名或密码不正确 帐户被锁定 在这种情况下,操作方法将配置三个可能的结果字符串和三个不同的视图来呈现结果

  • 问题内容: 我知道如何获取mysql行并将其转换为json: 但: 数据库行具有不同的类型,例如int,float,string。通过使用json_encode()进行转换,所有结果都是字符串。 有没有比这更好的方法来更正类型: 我想遍历键并添加0,因为: 第一个编码规则:干-不要重复自己 但我不能,因为: 行还具有数字以外的其他类型(字符串,日期) 有很多列 设计在开发人员中,因此列名经常更改