如何将原始HTML从java spring controller传递到jsp视图

时间:2016-10-05 13:45:56

标签: java html spring jsp spring-mvc

我只是为了可行性目的尝试一些事情。

我正在尝试将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;
    }

}

4 个答案:

答案 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&quot; 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页面。