- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 JSP、STRUTS2、AJAX、jQuery 和 MySQL 来填充依赖下拉列表。我想知道为什么我的第二个下拉列表没有被填充?请让我知道我在这里缺少什么。
AjaxJsonAction.java
package com.action;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.json.JSONArray;
import com.opensymphony.xwork2.Action;
public class AjaxJsonAction implements Action{
private Map<String, String> stateMap = new LinkedHashMap<String, String>();
private String dummyMsg;
//Parameter for Jquery
private String countryName;
private String eventName;
//
// private Map<String, String> eventList = new LinkedHashMap<String, String>();
// private Map<String, String> eventDateList = new LinkedHashMap<String, String>();
private ArrayList<Event> eventList;
private ArrayList<EventShow> eventShowList;
private Map<String, String> edList = new LinkedHashMap<String, String>();
public Map<String, String> getStateMap() {
return stateMap;
}
public String getDummyMsg() {
return dummyMsg;
}
public String getCountryName() {
return countryName;
}
public void setStateMap(Map<String, String> stateMap) {
this.stateMap = stateMap;
}
public void setDummyMsg(String dummyMsg) {
this.dummyMsg = dummyMsg;
}
public void setCountryName(String countryName) {
this.countryName = countryName;
}
// public Map<String, String> getEventList() {
// return eventList;
// }
// public void setEventList(Map<String, String> eventList) {
// this.eventList = eventList;
// }
//
// public Map<String, String> getEventDateList() {
// return eventDateList;
// }
// public void setEventDateList(Map<String, String> eventDateList) {
// this.eventDateList = eventDateList;
// }
public String getEventName() {
return eventName;
}
public void setEventName(String eventName) {
this.eventName = eventName;
}
public ArrayList<Event> getEventList() {
return eventList;
}
public void setEventList(ArrayList<Event> eventList) {
this.eventList = eventList;
}
public ArrayList<EventShow> getEventShowList() {
return eventShowList;
}
public void setEventShowList(ArrayList<EventShow> eventShowList) {
this.eventShowList = eventShowList;
}
public Map<String, String> getedList() {
return edList;
}
public void setedList(Map<String, String> edList) {
this.edList = edList;
}
private List<EventShow> eventShows;
public List<EventShow> getEventShows() { return eventShows; }
public String execute() {
// dummyMsg = "Ajax action Triggered";
// return SUCCESS;
System.out.println("inside execute.");
populateEvent();
System.out.println("eventList Count="+eventList.size());
// populateShow(eventName);
return "success";
}
public void populateEvent() {
System.out.println("inside populateEvent.");
Connection conn = null;
try {
String URL = "jdbc:mysql://localhost:3306/bookmyshow_dates";
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(URL, "dra2", "dr@2");
String sql = "SELECT DISTINCT * FROM EVENTS";
// String sql ="SELECT * FROM user3333";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
eventList = new ArrayList<Event>();
while (rs.next()) {
// eventList.put(rs.getString("EventId"),rs.getString("EventName"));
eventList.add(new Event(rs.getInt("EventId"),rs.getString("EventName")));
}
} catch (Exception e) {
// return "error";
}
finally {
if (conn != null) {
try {
conn.close();
} catch (Exception e) {
}
}
}
System.out.println("inside populateEvent End.");
// return "getEventList";
}
// public void populateShow(String eventName) {
// public ArrayList<EventShow> populateShow() {
// public Map<String, String> populateShow() {
public void populateShow() {
String eventId="1";
System.out.println("parameter:"+eventId);
Connection conn = null;
try {
String URL = "jdbc:mysql://localhost:3306/bookmyshow_dates";
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(URL, "dra2", "dr@2");
String sql="SELECT ShowId,EventDate,\r\n" +
"CASE \r\n" +
" WHEN DATEDIFF(EventDate,NOW()) = 0 THEN CONCAT('Today',', ',DAY(EventDate),' ',MONTHNAME(EventDate))\r\n" +
" WHEN DATEDIFF(EventDate,NOW()) = 1 THEN CONCAT('Tomorrow',', ',DAY(EventDate),' ',MONTHNAME(EventDate))\r\n" +
" WHEN DATEDIFF(EventDate,NOW()) > 1 THEN CONCAT(DAYNAME(EventDate),', ',DAY(EventDate),' ',MONTHNAME(EventDate))\r\n" +
"END AS EventDay\r\n" +
",es.EventId\r\n" +
"FROM EventShows es\r\n" +
"INNER JOIN EVENTS e ON es.EventId = e.EventId AND (EventDate>=NOW())\r\n" +
"WHERE e.EventId='"+eventId+" ';";
// String sql ="SELECT * FROM user3333";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
eventShowList = new ArrayList<EventShow>();
while (rs.next()) {
eventShowList.add(new EventShow(rs.getInt("ShowId"),rs.getString("EventDay"),rs.getInt("EventId")));
// eventDateList.put(rs.getString("EventId"), rs.getString("EventName"));
edList.put(rs.getString("EventId"), rs.getString("EventName"));
}
} catch (Exception e) {
// return "error";
}
finally {
if (conn != null) {
try {
conn.close();
} catch (Exception e) {
}
}
}
System.out.println("eventShowList:"+eventShowList.size());
// JSONArray jsArray = new JSONArray(eventShowList);
// Converts JSON string into a List of Product object
// List<EventShow> eventShows = ((List<EventShow>) eventShowList);
// return eventShowList;
}
}
事件.java
package com.action;
public class Event {
private int eventId;
private String eventName;
Event(int eventId, String eventName)
{
this.eventId = eventId;
this.eventName = eventName;
}
public int getEventId() {
return eventId;
}
public void setEventId(int eventId) {
this.eventId = eventId;
}
public String getEventName() {
return eventName;
}
public void setEventName(String eventName) {
this.eventName = eventName;
}
}
EventShow.java
package com.action;
public class EventShow {
private int showId;
private String eventDate;
private int eventId;
EventShow(int showId, String eventDate, int eventId)
{
this.showId = showId;
this.eventId = eventId;
this.eventDate = eventDate;
}
public int getshowId() {
return showId;
}
public void setShowId(int showId) {
this.showId = showId;
}
public String getEventDate() {
return eventDate;
}
public void setEventDate(String eventDate) {
this.eventDate = eventDate;
}
public int getEventId() {
return eventId;
}
public void setEventId(int eventId) {
this.eventId = eventId;
}
}
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="json-default">
<action name="getEvents" class="com.action.AjaxJsonAction" >
<result name="success">/index.jsp</result>
<result name="error">/error.jsp</result>
</action>
<action name="populateEventDate" class="com.action.AjaxJsonAction" method="populateShow">
<!-- <result type="json">/index.jsp</result> -->
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Struts2</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
index.jsp
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>AJAX in Struts 2 using JSON and jQuery</title>
<script src="js/jquery-1.8.2.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
$('#country').change(function(event) {
var country = $("select#country").val();
$.getJSON('ajaxAction', {
countryName : country
}, function(jsonResponse) {
$('#ajaxResponse').text(jsonResponse.dummyMsg);
var select = $('#states');
select.find('option').remove();
$.each(jsonResponse.stateMap, function(key, value) {
$('<option>').val(key).text(value).appendTo(select);
});
});
});
// $('#event').change(function(event) {
// var country = $("select#event").val();
// // $.getJSON('<s:url action='populateEventDate'/>', {
// $.getJSON('populateEventDate', {
// eventName : country
// }, function(jsonResponse) {
// $('#ajaxResponse').text(jsonResponse.dummyMsg);
// var select = $('#eventDate');
// select.find('option').remove();
// $.each(jsonResponse.eventDateList, function(key, value) {
// $('<option>').val(key).text(value).appendTo(select);
// });
// });
// // $.ajax({
// // type: "POST",
// // url: "<s:url action='populateEventDate'/>",
// // data: {'eventName': country},
// // contentType: "application/json; charset=utf-8",
// // dataType: "json",
// // success: function(msg) {
// // $("#eventDate").get(0).options.length = 0;
// // $("#eventDate").get(0).options[0] = new Option("Select event", "-1");
// // $.each(msg.d, function(index, item) {
// // $("#eventDate").get(0).options[$("#eventDate").get(0).options.length] = new Option(item.Display, item.Value);
// // });
// // },
// // error: function(meg) {
// // $("#eventDate").get(0).options.length = 0;
// // alert("Failed to load events."+meg);
// // }
// // });
// });
$('#event').change(function(event) {
var eName = $("select#event").val();
// $.getJSON('populateEventDate', {
// eventName : eName
// }, function(jsonResponse) {
// $('#ajaxResponse').text(jsonResponse.dummyMsg);
// var select = $('#eventDate');
// select.find('option').remove();
// $.each(jsonResponse.stateMap, function(key, value) {
// $('<option>').val(key).text(value).appendTo(select);
// });
// });
$.ajax({
type:'POST',
dataType:'json',
// url:'populateEventDate?eventName='+eName,
url: "<s:url action='populateEventDate'/>",
data: {'eventName': eName},
// dataType: "text",
contentType: "application/json; charset=utf-8",
success: function(jsonResponse) {
$('#ajaxResponse').text(jsonResponse.dummyMsg);
var select = $('#eventDate');
select.find('option').remove();
$.each(jsonResponse.eventDateList, function(key, value) {
$('<option>').val(key).text(value).appendTo(select);
});
},
error: function(jsonResponse) {
$("#eventDate").get(0).options.length = 0;
alert("Failed to load events."+jsonResponse);
}
});
});
});
</script>
</head>
<body>
<h3>AJAX calls to Struts 2 using JSON and jQuery</h3>
<br />
<br />
<s:select name="event" id="event" list="eventList" listKey="eventId"
listValue="eventName" headerKey="0" headerValue="Event"
label="Select a event" />
<br />
<br />
<s:select id="eventDate" name="eventDate" list="{'Select eventdate'}"
label="Select eventdate" />
</body>
</html>
此外,我在函数中得到的 JSON 响应为 NULL:$('#event').change(function(event)
。
最佳答案
您需要进行一些更正。
第一步:在struts.xml
文件
<action name="populateEventDate" class="com.action.AjaxJsonAction" method="populateShow">
<result type="json">/index.jsp</result>
</action>
第 2 步: 在 AjaxJsonAction.java
public String populateShow() {
edList.put("1", "Monday");// Fill this map with your database values
return "success";
}
第 3 步: 在 index.jsp
-> 使用来自 cdn 的 jquery js 并使用以下代码
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#event').change(function(event) {
var event = $("select#event").val();
$.getJSON('populateEventDate', {
eventName : event
}, function(jsonResponse) {
$('#ajaxResponse').text(jsonResponse.dummyMsg);
var select = $('select#eventDate');
select.find('option').remove();
$.each(jsonResponse.edList, function(key, value) {
$('<option>').val(key).text(value).appendTo(select);
});
});
});
});
</script>
如果您有更多错误,请回复我。
关于jquery - 为什么我的第二个下拉菜单没有被填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24277291/
padding:initial 比 padding:0 有什么优势吗?示例: textarea { padding: 0; } Hello, world! 最佳答案 它们的意思是一
我尝试通过按钮填充 JList,然后在先前填充的 Jlist 上使用 DoubleClick 填充 JTextField。 代码: private void extractUsedVariables
我正在尝试做 var width = ($(this).width() + $(this).css('padding-left') + $(this).css('padding-right' ));
我在导航中添加了悬停效果,遗憾的是悬停也影响了上面的文字。如何在不影响文本位置的情况下向导航添加悬停? 可悲的是,我找不到解决这个问题的方法。 HTML 模板:http://projects.help
我是 F# 初学者,下面代码中的 %-5s 和 %5s 有什么作用?我认为它提供了空间填充,但我不确定它是如何填充的? printfn "%-5s %5s" "a" "b" 当我尝试 prin
我需要选择带狗的用户(带 type 等于“狗”的宠物) var User = Waterline.Collection.extend({ identity: 'user', attribute
我一直在尝试让 Excel 在一组列上应用公式,然后将模式扩展到整个行集。 这导致了以下代码: For i = 0 To avgsheetNames.Count - 1 If Contains(CSt
随着 Flutter 2.0 的发布,FlatButton已被替换为 TextButton . 因此,填充属性不再直接可用,而是作为 ButtonStyle属性(property)。 我的问题是,我该
这似乎是一个简单的问题,但我已经尝试了一个小时,似乎无法弄清楚。 我要做的就是用 Canvas 填充 MainWindow。我找不到任何允许这样做的属性,我能想到的唯一方法是设置 Canvas.Wid
这是a website具有移动 View 。 网站宽度为 640 像素,但 iPhone 以 678 像素渲染文档。在 Android 中看起来很棒。 我添加了视口(viewport)元: 主体 C
我正在使用 GridBagLayout到(当前)显示两行。我知道这种布局对于这项任务来说太过分了,但我正在努力学习如何使用它。问题是我已将两个面板添加到两个单独的行中,并且内容周围存在巨大差距(请参见
我有以下代码已传递给我并创建多边形: var map; function initialize() { var myLatlng = new google.maps.LatLng(-36.4
我在 Jpanel 中有一些项目,然后将其推到顶部并用作基本搜索引擎的工具栏。我遇到一个问题,因为没有足够的空间,所以我的最后一个组合框没有显示。但是,左侧有很多空白空间,我需要移动所有内容来填充 J
我创建了带有阈值的二进制图像。如下图所示如何改变白色形状的颜色以使其可索引? 到目前为止,这是我的代码: void threshold() { cv::Mat src_8uc3_img = c
我有一个 JTable,我想知道是否有更好的方法来填充它,这是我的代码: //Metodo para llenar un jtable con datos de la base public stat
我想要做的是裁剪一个卷以删除所有不相关的数据。例如,假设我有一个 100x100x100 的体积,其中填充了 0,但其中的 50x50x50 体积则填充了 1。如何从原始体积中获得裁剪后的 50x50
因此,我正在创建一种对一组数字进行洗牌的方法,其想法是创建这些数字的总体。因此,我创建了一个循环,对数字进行洗牌,然后将其添加到数组列表中,但是经过一些调试语句后,我发现它确实对数字进行洗牌,但只将最
假设我有这两个类: public class A where T : IEntityWithID, new() { private static EntityInfo entityInfo =
我正在尝试添加用户输入的两个大整数作为字符串。当两个输入字符串的长度不同时,我尝试用零填充较短的数字,但它不起作用。因此,如果我输入 456 和 7,它会给出 3,前面有一些随机字符。感谢您的任何建议
这是我将内容打印到表格 View 的代码 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: Index
我是一名优秀的程序员,十分优秀!