我正在尝试在jstl标签内使用表达式语言,但会发生奇怪的错误.
"根据标记文件中的TLD或属性指令,属性值不接受任何表达式"
代码是这样的:
<c:out value="${header['host']}"/>
Run Code Online (Sandbox Code Playgroud)
但下一个代码执行得很好:
${header["host"]}
<c:out value="hello"/>
Run Code Online (Sandbox Code Playgroud)
我将jstl.jar和standard.jar添加到WEB-INF/lib /(和classpath).包含jstl的指令是标准的:
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
Run Code Online (Sandbox Code Playgroud)
JSTL版本是1.1.2
App-server:tomcat 6.0.16
我想使用JSTL
我尝试使用以下方法导入taglib:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Run Code Online (Sandbox Code Playgroud)
但它说无法找到标签库描述符
以下:
<% if ((String) session.getAttribute("userID") != null) {
String username= (String) session.getAttribute("userID"); %>
<li><a><small>Logged in as <%=username %></a></li>
<% } %>
Run Code Online (Sandbox Code Playgroud)
谢谢
我在显示多行文本时遇到问题.例如,用户可以textarea在注册表单中键入其文本,并且文本可以是多行,即他可以按Enter(返回)键来插入换行符.
在一个页面上,如果我想显示他键入的文本并使用textarea显示(with EL),它会显示用户最初输入的方式.
但在另一页上,我需要以段落格式(使用<p>标签)显示此文本.在此页面上,当我显示用户在注册时输入的值时,它没有换行符,即它显示在一行而不是用户输入的多行.
我已经尝试EL在<p>标记内显示文本,并在标记中使用<c:out>JSTL的<p>标记.
我尝试过的一些代码:
Trial-1:
<p>${product.description}</p> //Doesn't show line breaks
Run Code Online (Sandbox Code Playgroud)
试验2:
<p><c:out value="${product.description}" /></p> //Doesn't show line breaks too
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
如何在JSP页面上的地图中打印嵌套对象/属性的值?
<c:foreach items="${survey}" var="survey">
<c:out value="${survey.value}" />
</c:foreach>
Run Code Online (Sandbox Code Playgroud)
那么让我们说Survey有一个名为Questions的属性(这是另一个对象),我想打印那些问题(survey.questions.getId()或survey.questions.getTitle()),那个foreach语句看起来怎么样?
编辑:调查是一个地图,而不是一个集合
Map<String, List<OfferBean>> map = new HashMap<String, List<OfferBean>>();
List<OfferBean> al=new ArrayList<OfferBean>();
OfferBean of=null;
sql="select * from catgory";
ps1=c.prepareStatement(sql);
ps1.execute();
rs=ps1.getResultSet();
if(rs.next())
{
System.out.println("inside loop of if");
sql="select * from catgory";
ps1=c.prepareStatement(sql);
ps1.execute();
rs=ps1.getResultSet();
while(rs.next())
{
of=new OfferBean();
System.out.println("inside loop of while");
of.setCategory(rs.getString("catgoryname"));
al.add(of);
}
map.put("key", al);
Run Code Online (Sandbox Code Playgroud)
我想用两个ArrayList两个ArrayList我会把里面HashMap用钥匙,我想传递给jsp在一旁jsp一边我想用检索的数据jstl是如何reteive PLZ任何一个可以帮助我
下面是我的代码,一切正常,但fmt不好。
web.xml
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/tags/jstl-fmt.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tags/jstl-fmt-1_0.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/fmt-1_0.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tags/jstl-fmt-1_0-rt.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/fmt-1_0-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tags/jstl-c.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tags/jstl-c-1_0.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/c-1_0.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tags/jstl-c-1_0-rt.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/c-1_0-rt.tld</taglib-location>
</taglib>
</jsp-config>
Run Code Online (Sandbox Code Playgroud)
Sample.jsp
<%@ taglib uri="/WEB-INF/tags/jstl-fmt.tld" prefix="fmt" %>
<%@ taglib uri="/WEB-INF/tags/jstl-c.tld" prefix="c" %>
<html:form action="/UserAction.do">
<fmt:message key="message.username"/>
<c:out value="Hello" />
</html:form>
Run Code Online (Sandbox Code Playgroud)
ApplicationResource.properties
message.username=Username
Run Code Online (Sandbox Code Playgroud)
标签目录
\projectName\web\WEB-INF\tags
Run Code Online (Sandbox Code Playgroud)
结果
Hello // from core
???message.username??? //the fmt:message.username not working
Run Code Online (Sandbox Code Playgroud)
谁能帮助我,为什么fmt无效?我尝试使用jstl创建3个或更多项目。所有的jstl都在工作,但只有fmt不能。
我上了课 LineGroup
public class LineGroup {
private List<String> lines = null;
public LineGroup() {
lines = new ArrayList<String>();
}
public void addToList(String line) {
lines.add(line);
}
public void clear() {
lines.clear();
}
public List<String> getLines(){
return lines;
}
public String getLine(int i) {
return lines.get(i);
}
public int getLength() {
return lines.size();
}
}
Run Code Online (Sandbox Code Playgroud)
在我的servlet中,我用数据填充它,将其设置为属性并返回main页面
request.setAttribute("list", lg);
request.getRequestDispatcher("/main.jsp").forward(request, response);
Run Code Online (Sandbox Code Playgroud)
在主页面上,我想要读取列表中的所有数据并将其放入select选项中.但它不能像这样工作
<body>
<jsp:useBean id="list" class="beans.LineGroup" scope="request"></jsp:useBean>
<form action="SevenServlet" method="POST">
?????? ??????:<input name="from" type="text"/><br>
?????? ??????:<input name="to" type="text"/><br> …Run Code Online (Sandbox Code Playgroud) 我正在尝试从会话中设置String值.我想要这样的东西:
<%
String getReactive = <c:out value="${result}"></c:out>;
%>
Run Code Online (Sandbox Code Playgroud)
我知道它不会奏效.但是我需要类似的东西:
<%
String getReactive = ics.GetVar("result");
%>
Run Code Online (Sandbox Code Playgroud) 我必须在带有JSTL的页面中显示一些已经转义的HTML标记的内容。
我知道的excapeXml是用于转义可以解释为标记的字符。但似乎这只是工作了平原和转义HTML: <p>This is the news</p>,它不能正确的工作已经逃脱HTML: <p>This is the news</p>。
那么,如何使用JSTL来对已经转义的HTML进行转义?