我只是为了可行性目的尝试一些事情。
我正在尝试将Spring控制器中的原始HTML代码传递给特定视图。但是,我想知道是否可以将原始html转换为字符串,然后将HTML字符串传递给视图。字符串错误"字符串消息"因为我没有将HTML格式化为字符串。
@Controller
public class TestController {
@RequestMapping(value = "/test", produces = "text/html;charset=UTF-8")
public ModelAndView test (ModelMap model) {
//Map<String, Object> cat = (Map<String, Object>) incidentService.getIncidentCategories();
ModelAndView mv = new ModelAndView("test2.jsp");
String message = <p><img alt="alt text" src="http://localhost:8080/aston.jpg" style="height:974px; width:2386px" />This is my textarea to be replaced with CKEditor.</p> //
return new ModelAndView("welcome", "message", message);
return mv;
}
}
答案 0 :(得分:1)
您可以使用@RestController
或@ResponseBody
,但不会使用viewResolver
@RestController
public class TestController {
@RequestMapping(value = "/test")
public String text1() {
return "<p>hello world</p>";
}
}
OR
@Controller
public class TestController {
@RequestMapping(value = "/test")
public @ResponseBody String text2() {
return "<p>hello world again!</p>";
}
}
答案 1 :(得分:0)
有两种方法可以从Spring控制器返回HTML。
如果您使用的是最新版本的Spring.Use来自@RequestMapping的“生成”属性
@RequestMapping(value = { "/testUrl" }, method = RequestMethod.GET,
produces = MediaType.TEXT_HTML_VALUE)
如果你使用的是较旧的版本的Spring,那么简单
response.setContentType("text/html");
response.getWriter().println(...) // print your html here
答案 2 :(得分:0)
所以我基本上来到这个解决方案。 在spring controller中,我将编码的转义html传递给视图。
mv.addObject(“Description”,HtmlUtils.htmlEscape(eknow.get(0).getDescription()));
unescaped:“
测试12345
“
转义:&lt; p&gt;测试12345&lt; / p&gt;
&lt; p&gt;&lt; img alt =“alt text”src =“http://localhost:8080/logo.gif" style =”height:303px;宽度:1191px“/&gt;&lt; / p&gt;
然后在视图中,我将转义的值存储在隐藏的输入中。
然后我通过jquery获取元素并将操作从转义转为非转义。
var testing = $("#test").val();
alert(decodeURIComponent(testing));
CKEDITOR.instances.description.setData(decodeURIComponent(testing));
然后,这将为我的HTML编辑器设置和呈现html原始代码。
如果您知道有任何优化方法,请告知我们。但这个解决方案有效。
答案 3 :(得分:0)
您可以使用<div class="well"><c:out value="${message}" escapeXml="false"></c:out></div>
你还需要在你的消息中转义引号
String message = "<p><img alt=\"alt text\" src=\"http://localhost:8080/aston.jpg\" style=\"height:974px; width:2386px\" />This is my textarea to be replaced with CKEditor.</p>"
将<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
添加到您的jsp页面。
假设您使用jsp页面。