首先我有两个表工作,类别,它是在图作为错误HTTP状态400 - 客户端发送的请求在语法上不正确。更新
和我的实体是:
@Entity
@Table(name = TableName.JOB_TABLE)
public class Job {
@Id
@GeneratedValue
private Integer id;
private String title;
private String description;
@OneToMany(mappedBy = "job")
private List<Category> categories;
// omitting setters an getters for brevity
}
和
@Entity
@Table(name = TableName.CATEGORY_TABLE)
public class Category {
@Id
@GeneratedValue
private Integer id;
private String name;
@ManyToOne
@JoinColumn(name = "job_id")
private Job job;
// omitting setters an getters for brevity
}
JobService是
@Service
public class JobService implements IDatabaseCrud<Job>{
@Autowired
private JobRepository jobRepository;
@Autowired
private CategoryRepository categoryRepository;
public void saveCategory(Job job) {
List<Category> categories = job.getCategories();
for (Category category : categories) {
category.setJob(job);
categoryRepository.save(category);
}
}
@Override
public void save(Job obj) {
// TODO Auto-generated method stub
jobRepository.save(obj);
saveCategory(obj);
}
}
现在我没有任何想法来保存新的工作,我必须从列表中选择多个类别来保存一个工作。
<form:form commandName="job">
<form:input path="title"/><br>
<form:input path="company"/><br>
<form:input path="location"/><br>
<form:input path="url"/><br>
<form:input path="email"/><br>
<form:input path="description"/><br>
<form:select path="categories">
<form:options items="${categories}" itemValue="id" itemLabel="name"/>
</form:select><br>
<form:input path="createdAt"/><br>
<form:input path="toApply"/><br>
<input type="submit" value="Add Job">
</form:form>
上述形式并不提交数据到控制器,并给出错误HTTP状态400由客户机发送请求-The是语法不正确。以下控制器我想这些细节保存到数据库
@Controller
public class JobController {
private static final Logger logger = LoggerFactory.getLogger(JobController.class);
@Autowired
private JobService jobService;
@Autowired
private CategoryService categoryService;
@ModelAttribute("job")
public Job constructJob() {
return new Job();
}
@RequestMapping(value = "/jobs", method = RequestMethod.GET)
public String showJobs(Model model) {
model.addAttribute("jobs", jobService.findAll());
return "jobs";
}
@RequestMapping(value = "/jobs/{id}", method = RequestMethod.GET)
public String showJobDetail(Model model, @PathVariable Integer id) {
model.addAttribute("job", jobService.findJobWithCategories(id));
return "job-detail";
}
@RequestMapping(value = "/show-add-job", method = RequestMethod.GET)
public String showJobForm(Model model) {
model.addAttribute("categories", categoryService.findAll());
return "add-job";
}
@RequestMapping(value = "/show-add-job", method = RequestMethod.POST)
public String addJobDetail(@ModelAttribute("job") Job job) {
///jobService.save(job);
List<Category> categories = job.getCategories();
for (Category category : categories) {
logger.info("DEBUG job object", category);
}
return "redirect:/jobs";
}
}
与上面的东西,我无法保存工作与类别,当我提出我得到HTTP Status 400
形式。在形式上有些不妥。 This is URL该项目。
你的web.xml没有春季调度员servlet定义,请添加定义,然后检查。 –
@KrishnatMolawade当我使用[WebApplicationInitializer]时,web.xml中没有必要使用spring dispatcher servlet定义(http://docs.spring.io/autorepo/docs/spring-framework/3.1.x/javadoc-api /org/springframework/web/WebApplicationInitializer.html)。 –
哦,我的坏...谢谢 –