我是Java EE的新手,我知道类似以下三行
<%= x+1 %>
<%= request.getParameter("name") %>
<%! counter++; %>
Run Code Online (Sandbox Code Playgroud)
是一种旧式的编码方式,在JSP版本2中,存在一种避免JSP文件中的Java代码的方法.有人可以告诉我替代的JSP 2行,以及这种技术的名称是什么?
我希望JSTL循环通过a Map<String, String>并输出键的值和它的值.
例如,我有一个Map<String, String>可以有任意数量的条目,我想使用JSTL遍历这个地图并输出密钥和它的值.
我知道如何使用密钥访问该值${myMap['keystring']},但是如何访问密钥?
如果我有一个JSF支持bean返回一个ArrayList类型的对象,我应该可以<c:foreach>用来迭代列表中的元素.每个元素都包含一个地图,虽然这里已经回答了如何通过JSTL访问地图内容的问题,如果我传递了这样的地图数组,我找不到如何迭代它们仍然使用JSTL访问地图内容.有文档引用简单的迭代器,但不是那些项目本身就是映射的文档.
如果有人能给我一个简单的例子来说明如何在JSP中迭代java List我会非常感激.标记
我有一个java类,它将servlet属性设置为HashMap对象:
request.setAttribute("types", da.getSecurityTypes());
Run Code Online (Sandbox Code Playgroud)
其中request是HttpServletRequest对象,并da.getSecurityTypes()返回一个HashMap对象.
有没有办法使用c:foreach或其他一些JSTL标签来浏览HashMap集合?
我刚在想:
<c:forEach var="type" items="${types}">
...
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
或者,如果无法完成,如何制作自定义标签来处理此问题?
在我的JSP页面中使用Java代码是我的最后手段,我想知道JSTL是否可以实现这一点.
谢谢,乔纳斯.
我有这样的地图,
Map<Integer,ArrayList<Object>> myMap = new LinkedHashMap<Integer,ArrayList<Object>>();
Run Code Online (Sandbox Code Playgroud)
现在我必须迭代这个Map,然后迭代地图中的ArrayList.我怎么能用JSTL做到这一点?
我需要获得一些配置并连接到某处的外部资源/对象/系统并将其存储在应用程序范围内.
我可以看到两种设置应用程序的方法:
init()现有的servlet和所需的代码,并将所有构造的对象保留在同一个servlet中.init()来完成工作.然后存储创建的对象ServletContext以与其他servlet共享.以上哪种方法更好?有没有更好的方法在servlet之间共享对象?直接从彼此调用它们......?
我尝试了以下令人惊讶的不起作用,看起来像.values在jstl中根本不起作用:
<c:forEach var="r" items="${applicationScope['theMap'].values}">
Run Code Online (Sandbox Code Playgroud)
映射定义如下(以后保存到ServletContext):
Map<Integer, CustomObject> theMap = new LinkedHashMap<Integer, CustomObject>();
Run Code Online (Sandbox Code Playgroud)
如何使这个工作?我实际上真的想避免修改foreach循环中的内容.
在我的Spring MVC应用程序中,我从controllerServlet返回了HashMap.现在我需要使用JSTL在我的jsp中打印它.请帮忙.我是这一切的新手.
我Map在bean中有如下内容:
public class TaskListData {
private Map<String, String[]> srcMasks = new HashMap<String, String[]>();
private Map<Integer, Map<String, String[]>> ftqSet = new HashMap<Integer, Map<String, String[]>>();
public void setFTQSet(Integer ftqid, String[] src, String[] masks) {
srcMasks.put("srcDir", src);
srcMasks.put("masks", masks);
ftqSet.put(ftqid, srcMasks);
}
Run Code Online (Sandbox Code Playgroud)
这ftqSet符合以下数据结构:
feedId = "5",
feedName = "myFeedName",
ftqSet => {
1 => {
srcDirs = ["/path/string"],
masks = ["p.txt", "q.csv"]
}
2 => { ...
}
}, ...
Run Code Online (Sandbox Code Playgroud)
在我的测试JSP文件中,我一直在尝试使用<c:forEach>以下方法访问数据:
<c:forEach items="#{bean.ftqSet}" var="f">
this text does …Run Code Online (Sandbox Code Playgroud) 如何<Integer, List<ResponseInfo>>使用<c:forEach>JSTL标记在JSP中迭代map,然后使用另一个for循环迭代该列表?
如果您想查看代码,请告诉我.
从控制器我回来了
return new ModelAndView("reviewAudit","responseForm",responseForm);
其中responseForm包含一个地图:
private Map<String, List<ResponseInfo>> resInfoMap;
这是我的JSP代码:
<div class="panel-body">
<div class="panel-group" id="accordion">
<c:forEach items="${responseForm.resInfoMap}" var="responselist">
<div class="panel panel-primary">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" class="">Topic1</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse in" aria-expanded="true">
<div class="panel-body">
<table>
<c:forEach items="${responselist}" var="response1">
<tr>
<td>
<p>
<span style="font-size: 13px; font-weight: bold;">Q:</span>
${response1.auditQuestion}
</p>
</td>
<td>
<p>
<span style="font-size: 13px; font-weight: bold;">Ans:</span>
${response1.auditResponse}
</p>
<p>
<span style="font-size: 13px; …Run Code Online (Sandbox Code Playgroud)