gpt4 book ai didi

java - 在 Spring Boot 中从另一个 Controller 调用一个 Controller

转载 作者:行者123 更新时间:2023-12-02 03:14:32 26 4
gpt4 key购买 nike

我对 Spring Boot 还很陌生,目前我陷入了困境。

我有 2 个 Controller 方法

IndexController.java

@RequestMapping(value="/openxml", params = "btnTransform", method = RequestMethod.POST)
public String transformXml(HttpServletRequest request, Model model) {
try {
String fileContent = request.getParameter("code1").replaceAll("&", "&");
String fileName = request.getParameter("fileName");
InputStream is1 = IOUtils.toInputStream(fileContent,StandardCharsets.UTF_8);
InputStream is2 = IOUtils.toInputStream(fileContent,StandardCharsets.UTF_8);
String htmlString=xmlOperation.simpleTransform(is1, fileName);
if (htmlString.equals("")){
model.addAttribute("message", "Please validate your XML!!");
}
model.addAttribute("htmlString",StringEscapeUtils.escapeHtml4(htmlString));
model.addAttribute("fileContent", fileContent);
model.addAttribute("fileName",fileName);
} catch (Exception e) {
logger.error(e.getMessage());
System.out.println(e.getMessage());
}
return "greeting";
}

@RequestMapping(value="/updatexpath", method=RequestMethod.POST, produces = "application/json")
@ResponseBody
public String updateXPath(@RequestParam("xml") String xml, @RequestParam("xPath") String xPath, @RequestParam("editedText") String editedText){
xml=xml.replaceAll("&", "&");
InputStream is = IOUtils.toInputStream(xml, StandardCharsets.UTF_8);
String editedXml=xmlOperation.updatePara(is, xPath, editedText);
editedXml=editedXml.replaceAll("&", "&");
return editedXml;
}

我在这里所做的是从ajax调用updateXPath方法并获取editedXml并更新文本区域。之后我想调用transformXml方法(无需单击任何按钮)。是否可以?如果是的话怎么办??如果没有,有什么解决办法吗??

任何帮助将不胜感激...

最佳答案

一种解决方案可能是在 Controller 中使用重定向。因此,您可以从一个 @RequestMapping 跳转到另一个。

@Controller
public class DemoController {

@RequestMapping("/")
public String index(){
String xml = "simpleXML";

return "redirect:/transformXML?xml=" + xml;
}

@RequestMapping("/transformXML")
public String transformXML(@RequestParam("xml") String xml){
System.out.println(xml);
//add xml to your model for the textarea.
//transform your xml
return xml;
}

}

点击http://localhost:8080/将创建一个字符串并重定向到http://localhost:8080/xml,其中包含您需要的参数。

您可以决定是否足以在 transform 之后在文本区域中显示 editedXml

关于java - 在 Spring Boot 中从另一个 Controller 调用一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40501285/

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