在JSP页面中,我使用title属性在鼠标悬停时显示文本。我想为多个字段使用相同的标题文本。
是否有可能,我可以在一个地方宣布该字符串并将其一遍又一遍地使用。
我是否有可能将该字符串与其他地方一起使用。
我尝试过使用scriplets(< %%>)并包含但不能正常工作。可能我不知道如何将变量称为属性。
答案 0 :(得分:0)
有两种方法可以实现这一目标。
我推荐的第一个选项是使用JSTL设置变量,然后在title属性中使用表达式,如此示例JSP:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Expression in title attribute</title>
</head>
<body>
<c:set var="myTitle" value="This is my title text using JSTL set tag"/>
<a href="yourpage" title="${myTitle}">test link</a>
<br>
<a href="yourpage2" title="${myTitle}">test link 2</a>
<form>
<input type="text" title="${myTitle}">
</form>
</body>
</html>
如果您出于某种原因无法使用JSTL,则第二种选择是。您可以使用scriptlet来设置变量,但JSP中的scriptlet通常是不受欢迎的。这是示例JSP:
<html>
<head>
<title>Scriptlet in title attribute</title>
</head>
<body>
<%
String myTitle = "This is my title text using a scriptlet to set a variable";
%>
<a href="yourpage" title="<%=myTitle%>">test link</a>
<br>
<a href="yourpage2" title="<%=myTitle%>">test link 2</a>
<form>
<input type="text" title="<%=myTitle%>">
</form>
</body>
</html>
此外,如果您要在多个JSP文件中使用相同的标题文本,则可以在包含文件中添加文本,然后让每个JSP文件包含此文件。这将是有益的,因为实际文本位于一个位置,如果您需要修改它,则不必修改每个JSP文件。
例如,您可以将其放在名为titleTextInclude.jsp的文件中:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:set var="myTitle" value="This is my title text using JSTL set tag from an include"/>
然后在您的JSP文件中,您只需要包含titleTextInclude.jsp文件,并使用$ {myTitle}表达式,如下所示:
<html>
<head>
<title>Expression in title attribute with an include</title>
</head>
<body>
<%@include file="titleTextInclude.jsp" %>
<a href="yourpage" title="${myTitle}">test link</a>
<br>
<a href="yourpage2" title="${myTitle}">test link 2</a>
<form>
<input type="text" title="${myTitle}">
</form>
</body>
</html>
答案 1 :(得分:0)
这可能会在将来对某人有所帮助。我在这里回答,这是我在该主题上发现的第一个问题。使用属性是最好的解决方案。
jsp代码段
<title>${title}</title>
智慧:使用JSTL为属性提供通用值是安全的。