在我的 Web 应用程序中,我需要显示一个从数据库动态加载的下拉列表。
我需要从数据库加载用户列表。每个用户的“访问级别”为 1 或 2。
当用户显示在下拉列表中时,他们的姓名旁边必须有一个图像。
(如“访问级别”1 的“绿色”勾号)和(访问级别 2 的红色叉号)。
我检查了这个网址 http://www.marghoobsuleman.com/jquery-image-dropdown 。
但是我需要根据从数据库加载的访问级别来显示图像。
我想这可以通过 JQuery/CSS 来完成。
任何人都可以请告诉如何做到这一点,如果可能的话,请提供示例代码?
最佳答案
由于您使用 jsp 作为 View 技术,因此请使用核心标签来决定是否要根据访问级别显示绿色勾号或红色叉号。
访问 this site 了解更多关于核心标签的用法。不要忘记在元素类路径中包含 jSTL.jar 和 standard.jar 文件。它们是支持 jSTL 的必要库。
看起来您的应用程序是使用 spring 框架开发的,因此我将尝试仅以这种方式进行解释。
您的 JSP 代码将是这样的:将其命名为 userlist.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<!doctype>
<html>
<head>
<script src="${pageContext.request.contextPath}/js/jquery-1.3.2.min.js" type="text/javascript></script>
<script src="${pageContext.request.contextPath}/js/jquery.dd.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/dd.css" />
</head>
<body>
<form:select id="userNames" path="userName" tabindex="10">
<form:option value="Select User">Select User</form:option>
<c:forEach begin="${userlist begin index (0)}" end="${userlist size}" var="i">
<c:choose>
<c:when test="${userNameList.user.accessLevel == 1}">
<form:option style="background-image:url(greentick.png);" value="${userNameList.user.userName}">${userNameList.user.userName}</form:option>
</c:when>
<c:otherwise>
<form:option style="background-image:url(redcross.png);" value="${userNameList.user.userName}">${userNameList.user.userName}</form:option>
</c:otherwise>
</c:choose>
</c:forEach>
</form:select>
</body>
</html>
现在您将拥有一个 Controller ,该 Controller 将在调用某些操作后被调用,并且它将与 userNameList 一起返回此 jsp。
下面是示例 UserController.java
@Controller
public class UserController {
@RequestMapping(value = "/showUsers", method = RequestMethod.GET)
public String showUserInfo(Model model) {
// here you prepare the userList, the list of Users along with information
// here User can be fetched from DB & values stored in User DTO and then DTO in the list
List<User> userNameList = new ArrayList<User>();
userNameList.add(User DTO objects go here);
model.addAttribute("userNameList", userNameList);
return "userlist"; // remember this is our jsp name
}
}
& 用户 DTO 可以是这样的。
下面是示例 User.java
public class User {
private String userName;
private int accessLevel;
// setters & getters of variables
}
这不能完全阐明答案。我已经尽力解释了。
你试试这个。它应该工作。
关于java - JSP/Jquery - 从带有图像的数据库动态加载的组合框下拉列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12523827/