gpt4 book ai didi

json - 在同一操作中获取 json 返回类型和 html 返回

转载 作者:行者123 更新时间:2023-12-01 02:23:32 25 4
gpt4 key购买 nike

我会尽量具体。

我有一个 Action 有两种方法,一种通过 ajax 调用,另一种通过常规提交调用。

关键是无法从常规提交中获取请求,我只获取操作属性。

public class ClientAction{

@SMDMethod
public Map<String, Object> findClient(String myParam){
...
}

public String saveClient(){
Map<String, String[]> parameterMap = this.getRequest().getParameterMap();
}
}

来自 saveClient 方法的 getRequest 返回 null!!!但为什么???我没有用@SMDMethod 声明它

这是 struts.xml
<action name="client" class="myCompany.ClientAction">
<interceptor-ref name="customJSON"><param name="enableSMD">true</param></interceptor-ref>
<result type="json"><param name="enableSMD">true</param></result>
</action>

我做了所有其他声明。我曾经有两个单独的类,每个方法一个,但是 ClientAction 和 ClientActionJSON 的可维护性并不容易。

关于如何在同一个类中使用两种方法(一个 ajax 和另一个不)的任何想法。

最佳答案

我会马上考虑写一个样本:

<action name="xclient" class="myCompany.ClientAction" method="jsonMethod">
<result type="json"></result>
</action>
<action name="yclient" class="myCompany.ClientAction" method="htmlMethod">
<result type="dispatcher">/pages/y.jsp</result>
</action>

现在只需在您的 ClientAction 中创建两种方法 jsonMethod() 和 htmlMethod(),一个处理 json,另一个处理 html 响应。

[编辑]

我又读了一遍,似乎您只需要一个操作,那么只需考虑使用字段(请求参数)来决定返回类型。
public String execute(){
//..Other code
if(returntype.equals("json")){
return "jsonresult";
}
else{
return "htmlresult";
}
}

<action name="client" class="myCompany.ClientAction" method="jsonMethod">
<result name="jsonresult" type="json"></result>
<result name="htmlresult" type="dispatcher">/pages/y.jsp</result>
</action>

以上我假设, returntype是一个字符串变量,您随每个请求一起发送,指定预期的返回值。您可以简单地将其隐藏在表单提交中并将其设置在 ajax 请求中。

关于json - 在同一操作中获取 json 返回类型和 html 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18411839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com