我试图将管理页面连接到servlet,我可以在其中将一些元素插入到数据库中。它是音乐会门票预订网站的演示,我使用表格输入数据,并使用servlet进行验证。
如果servlet在一个或多个表单字段中找到无效数据,它会将自定义消息作为名为mismatchOut的格式化字符串返回 - 每行一个无效消息,例如:
Concert date must be in yyyy-mm-dd format!
start time must be in hh:mm:ss format!
我在我的jsp中传递了这个:
<c:set var="invalidConcertInputMessage" value="${mismatchOut}" scope="page" />
我想要做的是将此消息传递给警报,警报会向管理员用户显示消息。
我试过了:
<c:if test="${not empty invalidConcertInputMessage}">
<script>
alert("${invalidConcertInputMessage}");
</script>
</c:if>
,
<c:if test="${not empty invalidConcertInputMessage}">
<script>
alert(${invalidConcertInputMessage});
</script>
</c:if>
,
<c:if test="${not empty invalidConcertInputMessage}">
<script>
alert(<c:out value="${invalidConcertInputMessage}");
</script>
</c:if>
,
<c:if test="${not empty invalidConcertInputMessage}">
<script>
alert("<c:out value="${invalidConcertInputMessage}" />");
</script>
</c:if>
和
<c:if test="${not empty invalidConcertInputMessage}">
<script>
alert('<c:out value="${invalidConcertInputMessage}" />');
</script>
</c:if>
似乎没什么用。我可能在这里错过了sintax,因为当它来到tu UI时,我是一个全新手。
这可以工作并打印出警告说&#34;一些文字&#34;:
<c:if test="${not empty invalidConcertInputMessage}">
<script>
alert("some text");
</script>
</c:if>
请告诉我如何将自定义消息传递给警报。或者这甚至可能吗?
答案 0 :(得分:4)
似乎问题是我将自定义消息字符串中的换行符发布为\n
,但java将它们解析为自己的换行符,而不是仅将\n
发送到java脚本,结果在某种形式的无效字符串中,它不会解析。
我通过替换servlet发送的自定义字符串中的\n with
\ n`来解决问题。
对于处于这种困境的其他人来说,这是我使用它的语法:
<c:if test="${not empty invalidConcertInputMessage}">
<script>
var message = "${invalidConcertInputMessage}";
alert(message);
</script>
</c:if>