我试图同时传递artistName和artistId的值,以允许将两个字段写入表中。我需要两个值来允许artistName上的超链接来查询单个艺术家。 artistId字段是艺术家表的主键,以及专辑表上的外键。
有没有办法制作一个双值名称,允许我轻松地将2个值相互分开,同时将名称和id写入表中,或者可能是在请求后解析2个字段的方法。 getParameter变得更有用吗?
以下是我对这个领域的看法......
JSP
<tr><td><b>Artist*</b></td>
<td><select name="artistName">
<c:forEach items="${Artists}" var="Artist">
<!-- <option> <c:out value="${Artist.artistName}?artistId=${Artist.artistId}& artistName=${Artist.artistName}"/></option>${Artist.artistId} -->
<option> <c:out value="${Artist.artistName} ${Artist.artistId}"/></option>
</c:forEach>
</select></td></tr>
答案 0 :(得分:0)
如果您要同时发送艺术家的 NAME 和 ID , 你可以做的是,当你在foreach循环中输入它们时,基本上你会用':'分隔它们。
因此,当您提交实际表单时,select的值将为artistName:artistID
从那里你可以拆分':'上的字符串,将它们作为单独的部分插入到你的表中。
答案 1 :(得分:0)
从您的评论中,我认为这样可以解决问题:
<tr>
<td><b>Artist*</b></td>
<td>
<select name="artistName">
<c:forEach items="${Artists}" var="Artist">
<option <c:out value="${Artist.artistId}"/>>${Artist.artistName}</option>
</c:forEach>
</select>
</td>
</tr>
请注意我自己不是Java / JSP所以我不确定语法,但id是在选项标签中输入value
属性INSIDE。我认为这是你的问题,但如果没有HTML输出源的副本,很难确定。
请注意,您的问题标题会误导您的目标。正如我在评论中所说,你实际上并不需要(至少不是从我看到的地方)传递多个值,实际上只需要艺术家ID。