- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将用户品牌显示为选项 Pane 中的选定元素,并且需要在下拉列表中显示完整的品牌列表。当选中条件 --> brands.contains(brand.toLowerCase().trim())
时,将显示元素 bat、cat 和 batting,而不是仅显示 bat 和 cat。
String brands="";
String userBrands[]=new String[30];
String brandslist[]= {"bat", "cat", "ant", "batting", "antenna"};
if(user.get("brand")!=null && !user.get("brand").isEmpty()){
brands = user.get("brand").toLowerCase();
System.out.println("BRANDS: " + brands); //here bat and cat retrieved from the database //Output: BRANDS: bat, cat
userBrands = brands.split(",");
}
for(String brand:brandslist){
if(brands.contains(brand.toLowerCase().trim())){%>
<option selected="selected" value="<%=brand.trim().toLowerCase()%>"><%=brand.trim()%></option>
<%}else{%>
<option value="<%=brand.trim().toLowerCase()%>"><%=brand.trim()%></option>
<%}
}
如果我尝试使用如下所示的 2 个循环,则不会维持顺序,即选定的循环首先出现在下拉列表中,然后是未选定的循环:
if(user.get("brand")!=null && !user.get("brand").isEmpty()){
brands = user.get("brand").toLowerCase();
System.out.println("BRANDS: " + brands);
userBrands = brands.split(",");
}
for(int p=0; p<brandlist.length; p++){
brandlist[p]=brandlist[p].trim().toLowerCase();
}
for(int q=0; q<userBrands.length; q++){
userBrands[q]=userBrands[q].trim().toLowerCase();
}
List<String> masterList = new ArrayList<String>();
List<String> selectedList = new ArrayList<String>();
List<String> unSelectedList = new ArrayList<String>();
masterList = Arrays.asList(brandlist);
for(int i=0; i<userBrands.length; i++){
for(int j=0; j<brandlist.length; j++){
if(userBrands[i].trim().equalsIgnoreCase(brandlist[j].trim())){
%>
<option selected="selected" value="<%=userBrands[i].trim()%>"><%=userBrands[i].trim()%></option>
<%
}
}
}
selectedList = Arrays.asList(userBrands);
for(String ms: masterList){
unSelectedList.add(ms);
for(String s: selectedList){
if(s.equalsIgnoreCase(ms)){
unSelectedList.remove(s);
}
}
}
for(String unStr: unSelectedList){%>
<option value="<%=unStr.trim()%>"><%=unStr.trim()%></option>
<%}%>
我想要的是,只有通过 user.get("brand").toLowerCase()
来自数据库的那些可以在选项中显示为选定的(而不是任何额外的) - 就像第一个代码片段中的击球一样),并且下拉列表中品牌的显示顺序与原始数组相同-->brandslist[]
。第一个代码片段可以通过一些操作来完成这项工作吗?
最佳答案
您需要使用equals
方法来比较值,而不是contains
。另外,在下面的代码中我添加了额外的变量found
来检查通过将值与 userBrands
数组进行比较,判断 brandslist
中是否存在值,并根据该值选项
将被选择
或未选择。即:
<%
String brands="";
String userBrands[];
String brandslist[]= {"bat", "cat", "ant", "batting", "antenna"};
if(user.get("brand")!=null && !user.get("brand").isEmpty()){
brands = user.get("brand").toLowerCase();
System.out.println("BRANDS: " + brands);
userBrands = brands.split(",");
}
//out.println(Arrays.toString(userBrands));
// to check if value there or not
boolean found;
for(int i= 0 ;i<brandslist.length ;i++){
found = false;
for(int j= 0 ;j<userBrands.length ;j++){
if(userBrands[j].equals(brandslist[i].toLowerCase().trim())){ %>
<option selected='selected' value='<%=brandslist[i].toLowerCase().trim()%>'><%=brandslist[i].trim()%></option>
<%
//value there
found = true;
}
}
//value not there found will remain false and below code will get executed
if(!found){ %>
<option value='<%=brandslist[i].trim().toLowerCase()%>'><%=brandslist[i].trim()%></option>
<%}
}%>
关于java - 比较两个数组以仅检索 JSP 中的精确匹配项,同时保留下拉列表中的显示顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57959409/
是否可以让标准 Java EE servlet 容器将文件解释并呈现为 JSP,即使该文件没有 .jsp 扩展名? 假设我的 WAR 根目录中有一个名为 foo.xyz 的文件。该文件包含一些 jST
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
我有几个通用元素(组件),它们会生成一些 html。似乎我的选择是创建一个 taglib,或者只是将该逻辑放入一个 jsp 页面并包含 jsp。 有什么不同?积极与消极? 最佳答案 Taglibs 允
我是 Ejb-JSP 的新手,对它知之甚少。我已经创建了一个 JSP 页面,它调用 Controller Servlet,而 servlet 调用 EJB。结构就像 JSP -> Servlet ->
我想编写一个自定义 JSP 标签,其输出包括其他 JSP 标签,这些标签本身也应该被动态评估。但显然我的一切TagSupport子类写入 pageContext.getOut()无需任何进一步评估,直
我有一个包含页面顶部内容的 JSP,我们称它为 header.jsp。出于性能原因,我想呈现此 JSP 并将其刷新给用户,然后再构建页面的其余部分。 (有关性能优势的解释,请参阅 here。) 我能想
我发现自己在处理一些旧的 JSP,想做一些简单的事情,比如以 dd/mm/yyyy 格式显示今天的日期 好像没那么简单, 到目前为止,我已经导入了 java.util.* 我试过很多东西 String
关于 JSP 标签字符集的简单问题。 mytag很简单。 tag文件位于 WEB-INF/tags .这个文件在 Eclipse 中的字符集是 UTF-8。出于某种原因,UTF-8 符号无法
这让我很吃惊!我的 JSP 中有以下代码。 在我重构 SlideShow 类并公开所有属性并删除 getter/setter 之前,这段代码一直有效。所以在我看来,EL 只适用于 getter 而不
现有的一组 JSP,用英文字段标签、javascript 错误/信息消息、图像“alt”消息等硬编码,需要多语言化。 将这些 JSP 转换为使用标准 Java 多语言功能(资源包、语言环境等)的最佳方
Closed. This question needs to be more focused。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题
我已经在 Tomcat 6.0 下部署了我们的 War 到 Linux 服务器。在那个 Linux 机器上,我们没有打开浏览器的权限。 是否可以从命令行执行 JSP? 最佳答案 您可以使用其中 wge
有没有人建议为 JSP 设置最佳缓冲区大小?您可以使用以下页面指令在 JSP 中设置缓冲区大小 我的问题如下 我的理解是,您使用的缓冲区大小越小,客户端浏览器的性能就越好。我的假设正确吗?如
我们正在使用 JBoss 7.1.3.Final 和 Java 6。我想将 UTF-8 页面编码应用于我们网站上提供的所有 JSP 页面,因此我将其添加到我们的 web.xml 文件中
学过jsp native,想包含动态文件。我想使用 include 调用动态页面 这段代码 如果我输入 dashboard.jsp?p=about 页面打开“pages/a
在我的 JSP 页面中,我希望链接转发到另一个 JSP 页面。当用户在 home.jsp 上时,我希望他们转到 login.jsp 等。我遇到的问题是无法找到 JSP,除非我将页面放在项目文件夹中(在
我正在尝试在新的grails应用程序中使用index.jsp切换index.gsp。我将默认的index.gsp重命名为not_index.gsp,并添加了index.jsp。现在,我收到以下错误。
是否可以从服务器端 jsf 代码将资源打开到新的浏览器选项卡(如命令按钮的 target="_newtab")? 以下代码在同一选项卡中打开资源: FacesContext.getCurrentIns
我想问一个关于 .jsp 的问题。使用 jsp 语法(例如 )和 XML 语法(例如 ... )有什么不同。使用其中一种语法是否有维护或某种 advs?谢谢。 最佳答案 原始的 语法更加紧凑,但如
JSP 文件是否有行业标准命名约定? 我遇到过来自不同来源的三种约定: 全部小写 (thisismyfile.jsp) 首字母小写的驼峰式大小写 (thisIsMyFile.jsp) 首字母大写的驼峰
我是一名优秀的程序员,十分优秀!