Java MVC Struts 响应原始字符串

问题描述 投票:0回答:1

我有一个用 Struts (MVC) 制作的 Java 项目,我需要将响应作为原始字符串发送

struts.xml

<struts>
  <constant name="struts.devMode" value="true"></constant>
  <constant name="struts.ui.theme" value="simple"></constant>
  <constant name="struts.xwork.chaining.copyErrors" value="true"></constant>
  <constant name="struts.xwork.chainingcopyMessages" value="true"></constant>

  <package name="basicstruts6" extends="struts-default" namespace="/">
    <default-action-ref name="init"></default-action-ref>


    <action name="init" class="some.class.path.mvc.ServiceTestAction" method="init">
      <result name="success">/WEB-INF/app/index.jsp</result>
    </action>

    <action name="invokeService" class="some.class.path.mvc.ServiceTestAction" method="execute">
      <result name="success">/WEB-INF/app/index.jsp</result>
    </action>

  </package>
</struts>

<action name="invokeService" class="some.class.path.mvc.ServiceTestAction" method="execute">
中,我想用我定义的原始字符串进行响应,而不使用
index.jsp
文件作为模型。

我仍然想要

some.class.path.mvc.ServiceTestAction
处理请求,但想直接写入响应编写器

同时我想设置响应的HTTP代码。如果出现错误,我想使用 HTTP 400 进行响应并将正文直接写入响应编写器。

java struts
1个回答
0
投票

如果您不想返回index.jsp作为结果,那么您应该在struts.xml中删除此代码

<result name="success">/WEB-INF/app/index.jsp</result>
    </

在操作类

execute()
方法中
return SUCCESS
放置
return NONE

如果您的操作类实现了

HttpServletRequest
HttpServletResponse
,您可以获得
ServletRequestAware
ServletResponseAware

您还可以阅读这个答案:How to get the request body and response body in apache struts2? - 使用 $.ajax.

发布

在操作

execute()
方法中,您使用 servlet API 向响应写入一些文本。类似的东西

PrintWriter writer = httpServletResponse.getWriter();
writer.println("hello server");
writer.flush();
httpServletResponse.setStatus(400);       
© www.soinside.com 2019 - 2024. All rights reserved.