Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 解析字符串中的变量-JSTL?_Java_Jsp_Jstl_El - Fatal编程技术网

Java 解析字符串中的变量-JSTL?

Java 解析字符串中的变量-JSTL?,java,jsp,jstl,el,Java,Jsp,Jstl,El,我一直在试图弄清楚我所尝试的是否可以使用JSTL。我将以下内容存储在数据库表中 <c:when test="${row.actionType == 'com'}"> ${row.actionText} </c:when> ${row.actionText} 因此,我将以下字符串存储在表中的一列中 <assign name="LocationID" expr="'${row.locationId}'"/> <submit

我一直在试图弄清楚我所尝试的是否可以使用JSTL。我将以下内容存储在数据库表中

<c:when test="${row.actionType == 'com'}">  
  ${row.actionText}  
</c:when>       

${row.actionText}
因此,我将以下字符串存储在表中的一列中

<assign name="LocationID" expr="'${row.locationId}'"/> 
<submit next="/aotg/dynApp" namelist="UserID AppID LocationID"/> 

因此,上面的字符串被写入
${row.actionText}
并得到解析。但是当然,JSTL中的输出与上面完全相同,没有解析 字符串中的变量
${row.locationId}
。你也能以某种方式解决内部变量吗

这样的事情是否可能发生,或者我是否需要硬编码JSTL页面中可能使用的任何参数,而不是尝试从中动态读取
表?

包含JSTL的
.jsp
文件被编译成
.java
文件,然后被编译成
.class
文件并在JVM中运行


由于
c:when
块在编译时不在JSP中,因此当类文件运行时,它只是成为一些输出文本。

现在,我只是使用一个映射来解决这个问题。当我有更多的时间时,我会的 看看是否有更优雅的方法来做到这一点

  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());
  }      
Map varMap=newhashmap();
varMap.put(“#locationId#”,locationId.toString());
放置(“#主菜单#”,主菜单);
varMap.put(“#userId#”,userId.toString());
varMap.put(“#appId#”,appId.toString());
命令=字符串;
对于(Map.Entry:varMap.entrySet()){
command=command.replace(entry.getKey(),entry.getValue());
}      
谢谢