Java 如何在一个下拉菜单中传递多个值?
我试图同时传递artistName和artistId的值,以允许将这两个字段写入表中。我需要两个值来允许artistName上的超链接查询单个艺术家。artistId字段是artists表的主键,也是albums表的外键 有没有一种方法可以创建一个双值名称,使我能够轻松地将这两个值彼此分离,并将名称和id同时写入表中,或者有没有一种方法可以将request.getParameter之后的两个字段解析为更有用的内容 这是我在这个领域的经验 JSPJava 如何在一个下拉菜单中传递多个值?,java,html,jsp,Java,Html,Jsp,我试图同时传递artistName和artistId的值,以允许将这两个字段写入表中。我需要两个值来允许artistName上的超链接查询单个艺术家。artistId字段是artists表的主键,也是albums表的外键 有没有一种方法可以创建一个双值名称,使我能够轻松地将这两个值彼此分离,并将名称和id同时写入表中,或者有没有一种方法可以将request.getParameter之后的两个字段解析为更有用的内容 这是我在这个领域的经验 JSP 艺术家* 如果您想同时发送艺术家的姓名和ID, 您
艺术家*
如果您想同时发送艺术家的姓名和ID,
您可以做的是,在foreach循环中输入它们时,基本上用“:”分隔它们
因此,当您提交实际表单时,select的值将是artistName:artistID
从这里,您可以拆分“:”上的字符串,将它们作为单独的部分插入到表中。根据您的评论,我认为这样做可以达到以下目的:
<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>
艺术家*
${Artist.artistName}
请注意,我本人并不喜欢Java/JSP,因此我不确定语法,但id是在选项标记内输入值
属性。我认为这是您的问题,但是如果没有HTML输出源的副本,就很难确定。
还请注意,您问题的标题对您的目标有误导性。正如我在评论中所说,实际上不需要(至少不需要从我看到的地方)传递多个值,只需要艺术家id。我不明白。。。如果你已经发送了id,那么你为什么还要发送这个名字,这样你以后就可以通过一个简单的连接来检索这个名字了?我对这个有点陌生,正在努力学习。如果我不知道更好的方法,请原谅我,这是问的重点。扩展您的想法会更有帮助。通常,如果有人在下拉列表中选择一位艺术家(姓名),发送和存储的值将是该艺术家的id。这基本上就是您需要存储在要录制的表中的所有内容,由于您已经有了另一个表,其中您知道艺术家的详细信息,当然还有id。因此,您应该将选项的值设置为仅艺术家id,并将文本设置为艺术家的名称,因为您的用户可能对id不感兴趣……将此forEach下拉菜单与我以前使用的其他下拉菜单进行比较,其中,正在传递的值在左侧标记为该值,然后是页面上显示的右侧显示值,如下所示。。。现在,如果我遵循这个模式,我应该显示艺人姓名,但传递艺人ID的是${Artist.artistName}…但是我有一个ID和名称的显示。有没有办法隐藏身份证?我试过了,也许我不知道你是怎么想的。它不起作用。我可以知道你用什么技术把它传给数据库吗?由于这是生成的HTML,所以可以通过AJAX请求等来完成。在每个字段的request.getParameter之后,我使用Hibernate来保存。。。Session Session=sessionFactory.openSession();事务tx=会话.beginTransaction();相册相册=新相册();专辑。集艺术家(艺术家);albums.setAlbumTitle(albumTitle);专辑。setYearReleased(yearReleased);此处为空日期字段的默认值。。。专辑。setYearReleased(yearReleased2);}专辑。集流派(流派);相册。设置标签(标签);albums.setAlbumType(albumType);专辑集制作人(制作人);保存(相册);tx.commit();session.close();
<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>