- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试构建一个基本的 Spring 应用程序来获取有关教学类(class)的信息并将其添加到 MySQL 数据库中。
显示一个表单,用户输入值并单击“提交”,这会通过 POST 将值发送到我的 Controller 。这些值应存储在 Session 对象中。
这对于所有值都适用,但日期 (start_date, end_date) 和时间 (start_time, end_time) 变量除外,它们保持为 null 并且不会调用它们的 setter。
如何让它将接收到的值存储到所需的日期和时间值中?
这是我的 jsp 文件,包含以下形式:
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Add a new session | Undergraduate Teaching System</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
<link rel="stylesheet" href="<%=request.getContextPath()%>/resources/css/normalize.css">
<link rel="stylesheet" href="<%=request.getContextPath()%>/resources/css/main.css">
<script src="<%=request.getContextPath()%>/resources/js/vendor/modernizr-2.6.2.min.js"></script>
</head>
<body>
<!--[if lt IE 7]>
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
<![endif]-->
<h1>Add a new teaching session</h1>
<form action="addsessionresult" method="POST">
<!-- Course -->
<label for="course">Course:</label>
<select name="course">
<option>Course 1</option>
<option>Course 2</option>
<option>Course 3</option>
<option>Course 4</option>
<option>Course 5</option>
</select>
<br />
<!-- Sesion name -->
<label for="session_name">Sesion name:</label>
<input type="text" name="session_name" />
<br />
<!-- Date picker -->
<label for="datepicker">Start date:</label>
<input type="text" class="date_picker" name="start_date" />
<br />
<!-- Repeat frequency -->
<label for="session_frequency">Repeat every:</label>
<select name="session_frequency" id="session_frequency">
<option value="0">One-off event</option>
<option value="1">1 week</option>
<option value="2">2 weeks</option>
<option value="3">3 weeks</option>
<option value="4">4 weeks</option>
</select>
<br />
<div id="repeat_until_wrapper" class="hidden">
<label for="end_date">Repeat until:</label>
<input type="text" class="date_picker" name="end_date" />
<br />
</div>
<!-- Time -->
<label for="start_time">Start time:</label>
<select name="start_time">
<option value="09:00">09:00</option>
<option value="10:00">10:00</option>
<option value="11:00">11:00</option>
<option value="12:00">12:00</option>
<option value="13:00">13:00</option>
<option value="14:00">14:00</option>
<option value="15:00">15:00</option>
<option value="16:00">16:00</option>
<option value="17:00">17:00</option>
<option value="18:00">18:00</option>
<option value="19:00">19:00</option>
<option value="20:00">20:00</option>
</select>
<br />
<!-- Duration -->
<label for="session_duration">Duration:</label>
<select name="session_duration">
<option value="15">15m</option>
<option value="30">30m</option>
<option value="45">45m</option>
<option value="60" selected>1h</option>
<option value="75">1h 15m</option>
<option value="90">1h 30m</option>
<option value="105">1h 45m</option>
<option value="120">2h</option>
<option value="135">2h 15m</option>
<option value="150">2h 30m</option>
<option value="165">2h 45m</option>
<option value="180">3h</option>
<option value="195">3h 15m</option>
<option value="210">3h 30m</option>
<option value="225">3h 45m</option>
<option value="240">4h</option>
<option value="255">4h 15m</option>
<option value="270">4h 30m</option>
<option value="285">4h 45m</option>
<option value="300">5h</option>
</select>
<br />
<!-- Lecturer -->
<label for="staff_member">Staff member:</label>
<select name="staff_member">
<option>Stephen Smith</option>
<option>Matthew Brown</option>
<option>Gethin Black</option>
<option>Jeremy Bailey</option>
<option>Joseph Lewis</option>
<option>David Watson</option>
</select>
<br />
<!-- Max attendance -->
<label for="max_attendance">Max. attendance:</label>
<input type="number" name="max_attendance" />
<br />
<!-- Compulsory -->
<label for="compulsory">Is compulsory?</label>
<input type="checkbox" name="compulsory" />
<br />
<!-- Venue -->
<label for="venue">Venue:</label>
<select name="venue">
<option value="Building 513">Building 513</option>
<option value="Building 720">Building 720</option>
<option value="Building 811">Building 811</option>
</select>
<br /><br />
<button type="submit" name="submit_data">Add session</button>
</form>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="<%=request.getContextPath()%>/resources/js/vendor/jquery-ui.min.js"></script>
<script src="<%=request.getContextPath()%>/resources/js/plugins.js"></script>
<script src="<%=request.getContextPath()%>/resources/js/main.js"></script>
</body>
这是我的 Controller :
//Gets the information from the new session form.
@RequestMapping(value = "/addsessionresult")
@ResponseBody
public ModelAndView addSession(@ModelAttribute("session") Session session, BindingResult result){
try {
//session's start_time, end_time, start_date, end_date are null here. All other variables are loaded correctly.
DatabaseAdapter.executeSQLUpdate("INSERT INTO Session (Course, Name, StartTime, EndTime, Frequency, Staff, MaxAttendance, Compulsory, Venue, StartDate, EndDate) "
+ "VALUES (" +
session.getCourse() + ", " +
session.getSession_name() + ", " +
session.getStart_time() + ", " +
session.getSession_end_time() + ", " +
session.getSession_frequency() + ", " +
session.getStaff_member() + ", " +
session.getMax_attendance() + ", " +
session.isCompulsory() + ", " +
session.getVenue() + ", " +
session.getStart_date() + ", " +
session.getEnd_date() + ", " +
")");
//return "Added successfully!";
return new ModelAndView("addsessionresult", "result", "User was added");
} catch (SQLException e) {
//return "Adding failed! Error: " + e.getMessage();
return new ModelAndView("addsessionresult", "result", "User not added\r\n\r\nError: \n" +e.getMessage());
}
}
这是我的 session 类:
import java.util.Date;
import java.sql.Time;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
public class Session {
private String course, session_name;
private Calendar start_date, end_date;
private int session_frequency;
private Time start_time, end_time;
private String staff_member;
private int max_attendance, session_duration;
private boolean compulsory;
private String venue;
public ArrayList<Calendar> getDates(){
ArrayList<Calendar> dates = new ArrayList<Calendar>();
if (session_frequency > 0) {
for (Calendar d = start_date; !d.after(end_date); d.add(Calendar.DATE, session_frequency)){
dates.add((Calendar) d.clone());
}
} else {
dates.add(start_date);
}
return dates;
}
public void setSession_duration(Time start_time, Time end_time) {
//TODO probably needs fixing.
int i = 0;
}
public String[] toArray(){
String[] result = new String[6];
result[0] = "Course: " + course;
result[1] = "Session: " + session_name;
result[2] = "Time: " + start_time.toString().substring(0, 5) + " - " + end_time.toString().substring(0, 5);
result[3] = "Staff: " + staff_member;
if (compulsory) {
result[4] = "Attendance is compulsory";
} else {
result[4] = "Attendance is not compulsory";
}
result[5] = "Venue: " + venue;
return result;
}
public String[] toArray(Calendar date){
SimpleDateFormat sdfDate = new SimpleDateFormat("dd MMM yyyy");
String[] result = new String[7];
result[0] = "Course: " + course;
result[1] = "Session: " + session_name;
result[2] = "Date: " + sdfDate.format(date.getTime());
result[3] = "Time: " + start_time.toString().substring(0, 5) + " - " + end_time.toString().substring(0, 5);
result[4] = "Staff: " + staff_member;
if (compulsory) {
result[5] = "Attendance is compulsory";
} else {
result[5] = "Attendance is not compulsory";
}
result[6] = "Venue: " + venue;
return result;
}
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
public String getSession_name() {
return session_name;
}
public void setSession_name(String session_name) {
this.session_name = session_name;
}
public Calendar getStart_date() {
return start_date;
}
public void setStart_date(Calendar start_date) {
this.start_date = start_date;
}
public void setStart_date(String start_date) {
System.out.println("Damn, start date");
try {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat();
cal.setTime(sdf.parse(start_date));
setStart_date(cal);
} catch (Exception e) { }
}
public Calendar getEnd_date() {
return end_date;
}
public void setEnd_date(Calendar end_date) {
this.end_date = end_date;
}
public void setEnd_date(String end_date) {
try {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat();
cal.setTime(sdf.parse(end_date));
setEnd_date(cal);
} catch (Exception e) { }
}
public int getSession_frequency() {
return session_frequency;
}
public void setSession_frequency(int session_frequency) {
//Transform to weeks.
this.session_frequency = 7 * session_frequency;
}
public Time getStart_time() {
return start_time;
}
public void setStart_time(String start_time) {
this.start_time = Time.valueOf(start_time);
}
public void setStart_time(Time start_time) {
this.start_time = start_time;
}
public Time getSession_end_time() {
return end_time;
}
public void setSession_end_time(Time session_end_time) {
this.end_time = session_end_time;
}
public int getSession_duration() {
return session_duration;
}
public void setSession_duration(int session_duration) {
//I hate Java's Time / Date / Calendar / etc. classes!!!
//Update end time.
/*Calendar cal = Calendar.getInstance();
cal.setTime(start_time);
cal.add(Calendar.MINUTE, session_duration);
end_time.setTime(cal.getTimeInMillis());
*/
this.session_duration = session_duration;
}
public String getStaff_member() {
return staff_member;
}
public void setStaff_member(String staff_member) {
this.staff_member = staff_member;
}
public int getMax_attendance() {
return max_attendance;
}
public void setMax_attendance(int max_attendance) {
this.max_attendance = max_attendance;
}
public boolean isCompulsory() {
return compulsory;
}
public void setCompulsory(boolean compulsory) {
this.compulsory = compulsory;
}
public String getVenue() {
return venue;
}
public void setVenue(String venue) {
this.venue = venue;
}
}
最佳答案
不要有两个以相同方式命名的 setter,并采用不同的参数类型。重命名其中之一后,请确保您的 JSP 使用与采用字符串作为参数的 setter 相对应的名称。
关于java - 在 Spring 中向对象添加日历值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20441702/
我创建了一个用户可以添加测试的字段。这一切运行顺利我只希望当用户点击(添加另一个测试)然后上一个(添加另一个测试)删除并且这个显示在新字段中。 所有运行良好的唯一问题是点击(添加另一个字段)之前添加另
String[] option = {"Adlawan", "Angeles", "Arreza", "Benenoso", "Bermas", "Brebant
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在努力将 jQuery 滚动功能添加到 nav-tab (Bootstrap 3)。我希望用户能够选择他们想要的选项卡,并在选项卡内容中有一个可以平滑滚动到 anchor 的链接。这是我的代码,可
我正在尝试在用户登录后再添加 2 个 ui 选项卡。首先,我尝试做一个之后。 $('#slideshow').tabs('remove', '4'); $("#slideshow ul li:last
我有一个包含选择元素的表单,我想通过选择添加和删除其中一些元素。这是html代码(这里也有jsfiddle http://jsfiddle.net/txhajy2w/):
正在写这个: view.backgroundColor = UIColor.white.withAlphaComponent(0.9) 等同于: view.backgroundColor = UICo
好的,如果其中有任何信息,我想将这些列添加到一起。所以说我有 账户 1 2 3 . 有 4 个帐户空间,但只有 3 个帐户。我如何创建 java 脚本来添加它。 最佳答案 Live Example H
我想知道是否有一种有效的预制算法来确定一组数字的和/差是否可以等于不同的数字。示例: 5、8、10、2,使用 + 或 - 等于 9。5 - 8 = -3 + 10 = 7 + 2 = 9 如果有一个预
我似乎有一个卡住的 git repo。它卡在所有基本的添加、提交命令上,git push 返回所有内容为最新的。 从其他帖子我已经完成了 git gc 和 git fsck/ 我认为基本的调试步骤是
我的 Oracle SQL 查询如下- Q1- select hca.account_number, hca.attribute3, SUM(rcl.extended_amou
我正在阅读 http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingG
我正在尝试添加一个“加载更多”按钮并限制下面的结果,这样投资组合页面中就不会同时加载 1000 个内容,如下所示:http://typesetdesign.com/portfolio/ 我对 PHP
我遇到这个问题,我添加了 8 个文本框,它工作正常,但是当我添加更多文本框(如 16 个文本框)时,它不会添加最后一个文本框。有人遇到过这个问题吗?提前致谢。 Live Link: JAVASCRIP
add/remove clone first row default not delete 添加/删除克隆第一行默认不删除&并获取正确的SrNo(例如:添加3行并在看到问题后删除SrNo.2)
我编码this ,但删除按钮不起作用。我在控制台中没有任何错误.. var counter = 0; var dataList = document.getElementById('materi
我有一个类似数组的对象: [1:数组[10]、2:数组[2]、3:数组[2]、4:数组[2]、5:数组[3]、6:数组[1]] 我正在尝试删除前两个元素,执行一些操作,然后将它们再次插入到同一位置。
使用的 Delphi 版本:2007 你好, 我有一个 Tecord 数组 TInfo = Record Name : String; Price : Integer; end; var Info
我使用了基本的 gridster 代码,然后我声明了通过按钮添加和删除小部件的函数它工作正常但是当我将调整大小功能添加到上面的代码中时,它都不起作用(我的意思是调整大小,添加和删除小部件) 我的js代
title 323 323 323 title 323 323 323 title 323 323 323 JS $(document).keydown(function(e){
我是一名优秀的程序员,十分优秀!