Spring mvc заменяет кавычки символом html - PullRequest
1 голос
/ 12 мая 2011

Однако я пытаюсь получить двойные кавычки в моем виде, пружина каким-то образом заменяет их, вот что я пробовал:

@RequestMapping(value="test", method = RequestMethod.GET)
    public ModelAndView test(){
        ModelAndView mav = new ModelAndView();
        mav.setViewName("test");
        Wrapper wp = new Wrapper();
        wp.setTestField("$(function() { alert(\"test\"); });");
        mav.addObject("testObject", wp);
        return mav;
    }

Оболочка - это пользовательский объект с одним полем testField.

@RequestMapping(value="test", method = RequestMethod.GET)
    public ModelAndView test(){
        ModelAndView mav = new ModelAndView();
        mav.setViewName("test");
        mav.addObject("testObject", "$(function() { alert(\"test\"); });");
        return mav;
    }

И jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">
<c:out value="${requestScope.testObject.testField}"></c:out>
</script>
</body>
</html>

Результат:

<script type="text/javascript">
    alert(&#039;test&#039;);    
</script>

Я хочу получить:

 <script type="text/javascript">
        alert("test");    
    </script>

1 Ответ

4 голосов
/ 12 мая 2011

Это потому, что <c:out> автоматически ускользает от вашего контента.

Чтобы остановить это, используйте

<c:out escapeXml="false" value="${requestScope.testObject.testField}"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...