【发布时间】:2020-06-17 15:38:07
【问题描述】:
我是 JSP 新手,所以也许这是一个愚蠢的问题。我知道在 JSP 中可以像这样使用<c:set>:
<jsp:useBean id="myBean" class="java.util.HashMap" scope="request"/>
<c:set target="${myBean}" property="x" value="y"/>
但这将 bean 的 id 限制为文字。有没有办法使用变量来代替?像这样的:
<c:set var="myBeanName" value="myBean" />
<jsp:useBean id="${myBeanName}" class="java.util.HashMap" scope="request"/>
<c:set target="${${myBeanName}}" property="x" value="y"/>
我知道${${}} 语法可能是错误的,只是为了给出我想要做什么的想法。可能吗?如果有,怎么做?
编辑:在这种情况下,我想分配具有不同名称的地图,并且以后能够以编程方式访问它们,而实际上并不知道它们的名称。例如假设我要分配两个地图,并且map1name,map2name在代码中的某处定义:
<jsp:useBean id="${map1name}" class="java.util.HashMap" scope="request"/>
<jsp:useBean id="${map2name}" class="java.util.HashMap" scope="request"/>
// What now? How do I access the map whose id is map1name?
我希望现在更清楚了。 :)
EDIT2:尝试了 Bashir@ 解决方案,我收到以下错误:
An error occurred at line: 5 in the jsp file:
Syntax error on token "$", = expected after this token
4: <c:set var="myBeanName" value="${param.name}" />
5: <jsp:useBean id="${myBeanName}" class="java.util.HashMap" scope="request"/>
An error occurred at line: 5 in the jsp file:
Syntax error on token(s), misplaced construct(s)
4: <c:set var="myBeanName" value="${param.name}" />
5: <jsp:useBean id="${myBeanName}" class="java.util.HashMap" scope="request"/>
An error occurred at line: 5 in the jsp file:
Syntax error on token ";", enum expected after this token
4: <c:set var="myBeanName" value="${param.name}" />
5: <jsp:useBean id="${myBeanName}" class="java.util.HashMap" scope="request"/>
An error occurred at line: 5 in the jsp file:
Syntax error on token "}", Expression expected after this token
4: <c:set var="myBeanName" value="${param.name}" />
5: <jsp:useBean id="${myBeanName}" class="java.util.HashMap" scope="request"/>
An error occurred at line: 5 in the jsp file:
Syntax error, insert ") Statement" to complete IfStatement
4: <c:set var="myBeanName" value="${param.name}" />
5: <jsp:useBean id="${myBeanName}" class="java.util.HashMap" scope="request"/>
An error occurred at line: 5 in the jsp file:
Syntax error on tokens, EnumHeader expected instead
4: <c:set var="myBeanName" value="${param.name}" />
5: <jsp:useBean id="${myBeanName}" class="java.util.HashMap" scope="request"/>
An error occurred at line: 5 in the jsp file:
Syntax error on token "}", invalid VariableDeclaratorId
4: <c:set var="myBeanName" value="${param.name}" />
5: <jsp:useBean id="${myBeanName}" class="java.util.HashMap" scope="request"/>
An error occurred at line: 5 in the jsp file:
Syntax error, insert "Identifier (" to complete MethodHeaderName
4: <c:set var="myBeanName" value="${param.name}" />
5: <jsp:useBean id="${myBeanName}" class="java.util.HashMap" scope="request"/>
An error occurred at line: 5 in the jsp file:
Syntax error, insert ")" to complete MethodDeclaration
4: <c:set var="myBeanName" value="${param.name}" />
5: <jsp:useBean id="${myBeanName}" class="java.util.HashMap" scope="request"/>
An error occurred at line: 5 in the jsp file:
Syntax error, insert ";" to complete MethodDeclaration
4: <c:set var="myBeanName" value="${param.name}" />
5: <jsp:useBean id="${myBeanName}" class="java.util.HashMap" scope="request"/>
An error occurred at line: 5 in the jsp file:
Syntax error, insert "}" to complete ClassBody
4: <c:set var="myBeanName" value="${param.name}" />
5: <jsp:useBean id="${myBeanName}" class="java.util.HashMap" scope="request"/>
An error occurred at line: 5 in the jsp file:
Syntax error, insert "}" to complete EnumBody
4: <c:set var="myBeanName" value="${param.name}" />
5: <jsp:useBean id="${myBeanName}" class="java.util.HashMap" scope="request"/>
An error occurred at line: 5 in the jsp file:
Syntax error on tokens, EnumHeader expected instead
4: <c:set var="myBeanName" value="${param.name}" />
5: <jsp:useBean id="${myBeanName}" class="java.util.HashMap" scope="request"/>
An error occurred at line: 5 in the jsp file:
Syntax error on token ",", invalid (
4: <c:set var="myBeanName" value="${param.name}" />
5: <jsp:useBean id="${myBeanName}" class="java.util.HashMap" scope="request"/>
An error occurred at line: 5 in the jsp file:
Syntax error, insert "AssignmentOperator Expression" to complete Expression
4: <c:set var="myBeanName" value="${param.name}" />
5: <jsp:useBean id="${myBeanName}" class="java.util.HashMap" scope="request"/>
【问题讨论】:
-
你能解释更多你想要做什么吗?举个例子
-
@Bashir 提供的示例,我希望现在更清楚了。
-
谢谢,希望我的回答对你有帮助
-
它对你有用吗?
-
抱歉我还没试过。我现在正在编写代码,然后将其部署到我的服务器:)