Java 返回HTML表单时返回空白输出的Spring模型和视图

Java 返回HTML表单时返回空白输出的Spring模型和视图,java,spring,model-view-controller,Java,Spring,Model View Controller,我正在从SpringAPI返回modelAndView对象。视图是一个JSP表单。 API的请求参数与DTO PaymentInput绑定。 该API在localhost上运行良好,但在部署到服务器时会给出空白响应。我已经检查了日志,但没有例外 已编辑 当我更改新模型和视图(“payuForm”、“paymentInput”、“paymentInput”) to ModelAndView mav=new ModelAndView(new MappingJackson2JsonView()); 它

我正在从SpringAPI返回modelAndView对象。视图是一个JSP表单。 API的请求参数与DTO PaymentInput绑定。 该API在localhost上运行良好,但在部署到服务器时会给出空白响应。我已经检查了日志,但没有例外

已编辑

当我更改新模型和视图(“payuForm”、“paymentInput”、“paymentInput”) to ModelAndView mav=new ModelAndView(new MappingJackson2JsonView()); 它开始以Json的形式返回输出

 "paymentInput": {
    "furl": "https://dev.travelkhana.com/callback/PayUfurl",
    "surl": "https://dev.travelkhana.com/callback/PayUsurl",
    "txnid": "472663",
    "key": "gtKFFx",
    "hash": "3c0eeb0cefd5c0637e0a50adee3fd0fe81af6c69f46a52b2fa50711eafa054b43af13957c02ef3a71c0dbcb8c05129829281fd256a55c0c0c04bbc40c84fd474",
    "orderid": "472663",
    "email": "test@test.com",
    "emailid": "test@test.com",
    "amount": "270",
    "productinfo": "vegthali,nonvegthali",
    "firstname": "rahul",
    "phone": "9716221914"
  }
但它仍然不适用于HTML响应

payuForm.jsp

<%@page import="com.tk.utilities.CommonFunction"%>
 <%
 String paymentUrl = CommonFunction.getProperties("payu_payment_url");
 System.out.println("paymentUrl:"+paymentUrl);
 %>

 <html>
 <head>
 <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
 </head>
 <body>
 <form:form action="<%=paymentUrl%>" method="post" id='payuForm'   modelAttribute="paymentInput">
    <form:input type="hidden" name="firstname" path="FIRSTNAME"/>
    <form:input type="hidden" name="surl"  path="surl"/>
    <form:input type="hidden" name="furl" path="furl" />
    <form:input type="hidden" name="phone" path="PHONE" />
    <form:input type="hidden" name="email" path="EMAIL" />
    <form:input type="hidden" name="amount" path="AMOUNT" />
    <form:input type="hidden" name="key" path="key" />
    <form:input type="hidden" name="hash" path="hash" />
    <form:input type="hidden" name="txnid" path="txnid" />

    <form:input type="hidden" name="productinfo" path="PRODUCTINFO" />

    <input type="hidden" name="isMobileView" value="1" /> 

</form:form>

</body>
</html>
控制器

@RequestMapping(value = "/payuPaymentNew", method = RequestMethod.POST)
    public @ResponseBody ModelAndView payuPaymentNew(
            @ModelAttribute("paymentInput") PaymentInput paymentInput,
            BindingResult result) throws IOException {

        String SURL = CommonFunction.getProperties("payu_surl");
        String FURL = CommonFunction.getProperties("payu_furl");
        System.out.println("order id:" + paymentInput.getORDERID());
        String salt = CommonFunction.getProperties("salt");
        String key = CommonFunction.getProperties("key");

        paymentInput.setSurl(SURL);
        paymentInput.setFurl(FURL);
        paymentInput.setKey(key);



        System.out.println("payumasterDao:.....");
        return new ModelAndView("payuForm", "paymentInput", paymentInput);


    }
预期产量

<html>
    <head>

</head>
    <body>
        <form id="payuForm" action="" method="post">
            <input id="FIRSTNAME" name="FIRSTNAME" name="firstname" type="hidden" value="rahul"/>
            <input id="surl" name="surl" name="surl" type="hidden" value=""/>
            <input id="furl" name="furl" name="furl" type="hidden" value="/>
            <input id="PHONE" name="PHONE" name="phone" type="hidden" value="9716221914"/>
            <input id="EMAIL" name="EMAIL" name="email" type="hidden" value="test@test.com"/>
            <input id="AMOUNT" name="AMOUNT" name="amount" type="hidden" value="270"/>
            <input id="key" name="key" name="key" type="hidden" value=""/>
            <input id="hash" name="hash" name="hash" type="hidden" value="3c0eeb0cefd5c0637e0a50adee3f/>
            <input id="txnid" name="txnid" name="txnid" type="hidden" value="472663"/>
            <input id="PRODUCTINFO" name="PRODUCTINFO" name="productinfo" type="hidden" value="vegthali,nonvegthali"/>
            <input type="hidden" name="isMobileView" value="1" />
        </form>
    </body>
</html>

XML条目

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/" />
      <property name="suffix" value=".jsp" />
   </bean>


从控制器中删除
@ResponseBody


@ResponseBody
注释基本上是告诉Spring:获取对象I(方法)return并使用任何支持它的序列化程序,并将其直接写入HTTP响应的主体这里没有JSP参与

删除
@ResponseBody
。感谢您的回复。我尝试删除@ResponseBody,但对我来说不起作用。实际上API/payuPaymentNew在本地主机上按预期工作,但在服务器上相同的代码返回空白响应。
@ResponseBody
用于按原样返回结果,而不是要进行解释,因此它无法工作(除非在两个系统上使用完全不同的配置)。此外,我还建议您使用
@RestController
您应该删除它,然后改用
@Controller
。我尝试删除@ResponseBody,但对我无效。实际上,API/payuPaymentNew在本地主机上按预期工作,但在服务器上相同的代码返回空白响应。您可以测试更改:返回新的ModelAndView(“payuForm”,“paymentInput”,paymentInput);用于测试更改:
返回新模型和视图(“payuForm”,“paymentInput”,paymentInput);
用于
返回新模型和视图(**P**ayuForm”,“paymentInput”,paymentInput);
我的jsp文件的名称是payuForm.jsp而不是payuForm.jsp,我也对它进行了编辑。我尝试使用ModelAndView mav=new ModelAndView(new MappingJackson2JsonView())将输出更改为json视图;现在返回
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/" />
      <property name="suffix" value=".jsp" />
   </bean>