我一直试图弄清楚我正在尝试使用JSTL是否可行。我将以下内容存储在数据库表
中<c:when test="${row.actionType == 'com'}">
${row.actionText}
</c:when>
因此我将以下String存储在表
的列中<assign name="LocationID" expr="'${row.locationId}'"/>
<submit next="/aotg/dynApp" namelist="UserID AppID LocationID"/>
因此上面的字符串例如被写入${row.actionText}
并得到解决。但是当然JSTL中的输出完全如上所述而没有解决
String中的变量${row.locationId}
。你也能以某种方式解决内部变量吗?
这样的事情是否可能,或者我是否需要对JSTL页面中可能使用的任何参数进行硬编码,而不是尝试从中动态读取它 桌子?
答案 0 :(得分:2)
包含JSTL的.jsp
文件被编译为.java
文件,然后将其编译为.class
文件并在JVM中运行。
由于c:when
块在编译时不在JSP中,因此在类文件运行时它只会变成一些输出文本。
答案 1 :(得分:0)
现在我只是使用地图来解决这个问题。当我有更多时间时,我会 看看有没有更优雅的方法来做到这一点。
Map<String, String> varMap = new HashMap<String, String>();
varMap.put("#locationId#", locationId.toString());
varMap.put("#mainMenu#", mainMenu);
varMap.put("#userId#", userId.toString());
varMap.put("#appId#", appId.toString());
command = string;
for (Map.Entry<String, String> entry : varMap.entrySet()) {
command = command.replace(entry.getKey(), entry.getValue());
}
由于