私は春のブートにはかなり新しいですし、現在私は状況に固執しています。春の起動時に別のコントローラからコントローラを呼び出す
私は私がここでやっている何を2つのコントローラメソッド
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メソッドを(ボタンをクリックすることなく)呼び出す必要があります。出来ますか?はいの場合、どのように?いいえ、いずれかの回避策?
任意の助けが理解されるであろう...
あなたがテキストエリアにXMLを配置する必要がありますか?なぜなら、応答後すぐに別のコントローラに行くなら、あなたのコントローラのリダイレクトを使って 'transformXml'に行き、' editedXml'を内部に与えることができるからです。 – Patrick
はい@パトリック、私はテキストエリアでxmlが必要です –