Здравствуйте!
Практикуюсь со Spring MVC. Есть классы Company, Employee. Связь один ко многим. Имеется страница со списком сотрудников компании http://localhost:8080/employees/32, где 32 - company_id
Пытаюсь реализовать добавление Employee к определенной Company по company_id.
employees.jsp
<%@ page import="java.net.URLConnection" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ page session="false" %>
<html>
<head>
<title>Employee List</title>
</head>
<body>
<h1>List of company employees</h1>
<br>
<br>
<c:if test="${!empty employeeListByCompanyId}">
<table class="tg">
<tr>
<th width="80">ID</th>
<th width="120">Name</th>
<th width="120">Age</th>
<th width="120">Salary</th>
<th width="120">Position</th>
<th width="60">Edit</th>
<th width="60">Delete</th>
</tr>
<c:forEach items="${employeeListByCompanyId}" var="employee">
<tr>
<td>${employee.id}</td>
<td>${employee.name}</td>
<td>${employee.age}</td>
<td>${employee.salary}</td>
<td>${employee.position}</td>
<td><a href="<c:url value='{companyid}/edit/${employee.id}'/>">Edit</a></td>
<td><a href="<c:url value='{companyid}/remove/${employee.id}'/>">Delete</a></td>
</tr>
</c:forEach>
</table>
</c:if>
<br>
<br>
<h1>Add a Employee</h1>
<c:url var="addAction" value="/employees/{id}/add"/>
<form:form action="${addAction}" commandName="employee">
<table>
<c:if test="${!empty employee.name}">
<tr>
<td>
<form:label path="id">
<spring:message text="ID"/>
</form:label>
</td>
<td>
<form:input path="id" readonly="true" size="8"
disabled="true"/>
<form:hidden path="id"/>
</td>
</tr>
</c:if>
<tr>
<td>
<form:label path="name">
<spring:message text="Name"/>
</form:label>
</td>
<td>
<form:input path="name"/>
</td>
</tr>
<tr>
<td>
<form:label path="age">
<spring:message text="Age"/>
</form:label>
</td>
<td>
<form:input path="age"/>
</td>
</tr>
<tr>
<td>
<form:label path="salary">
<spring:message text="Salary"/>
</form:label>
</td>
<td>
<form:input path="salary"/>
</td>
</tr>
<tr>
<td>
<form:label path="position">
<spring:message text="Position"/>
</form:label>
</td>
<td>
<form:input path="position"/>
</td>
</tr>
<tr>
<td>
<form:label path="company">
<spring:message text="company"/>
</form:label>
</td>
<td>
<form:input path="company"/>
</td>
</tr>
<tr>
<td colspan="2">
<c:if test="${!empty company.name}">
<br>
<input type="submit"
value="<spring:message text="Edit Company"/>"/>
</c:if>
<c:if test="${empty company.name}">
<br>
<input type="submit"
value="<spring:message text="Add Company"/>"/>
</c:if>
</td>
</tr>
</table>
</form:form>
</body>
</html>
Но каким образом вытащить данный id_company и чтоб в value="/employees/{id}/add" подставился нужны id?
EmployeeController.java
@Controller
public class EmployeeController {
private EmployeeService employeeService;
@Autowired(required = true)
@Qualifier(value = "employeeService")
public void setEmployeeService(EmployeeService employeeService) {
this.employeeService = employeeService;
}
@RequestMapping(value = "employees/{id}", method = RequestMethod.GET)
public String employeeListByCompanyId(@PathVariable("id") int id,
Model model){
model.addAttribute("employee", new Employee());
model.addAttribute("employeeListByCompanyId",
this.employeeService.employeeListByCompanyId(id));
return "employees";
}
@RequestMapping(value = "/employees/{id}/add", method = RequestMethod.POST)
public String addEmployee(@ModelAttribute("employee")Employee employee){
if (employee.getId() == 0){
this.employeeService.addEmployee(employee);
} else {
this.employeeService.updateEmployee(employee);
}
return "redirect:/companies";
}
@RequestMapping("/employees/{id}/remove/{id}")
public String removeEmployee(@PathVariable("id") int id, Model model){
this.employeeService.removeEmployee(id);
return "redirect:/companies";
}
@RequestMapping("/employees/{companyid}/edit/{id}")
public String editBook(@PathVariable("id") int id, Model model){
model.addAttribute("employee", this.employeeService.getEmployeeById(id));
model.addAttribute("employeeFullList", this.employeeService.employeeFullList());
return "redirect:/employees/{}";
}
}
в методе employeeListByCompanyId
добавьте id компании в атрибуты
model.addAttribute("companyID", id);
и тогда ссылка будет такая
<c:url var="addAction" value="/employees/{companyID}/add"/>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Можно ли так писать код? Будет ли утечка памяти и тд
Я хочу написать Telegram Bota на C#, используя WebHookЯ воспользовался сервисом Ngrok, который выдает https-адрес, и будет перенаправлять пакеты на локальную...
Как разрешить нажатие клавиши backspace и delete в Keypress