- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
案例:我有一个组织对象。它有一个部门对象列表,每个部门都有一个员工对象列表。
在 JSP 中,我有一个复选框列表,它将一个复选框绑定(bind)到一个员工对象(深入 2 个层次结构。即组织 -> 部门 -> 员工)。
<input type="checkbox" name="adminDepartmentList[${status.index}].employeeList" value="${employee.firstName}"> <c:out value="${employee.firstName}" /><br>
如你所见:
adminDepartmentList[0].employeeList --> John
adminDepartmentList[2].employeeList --> Rose
装订很好。提交表单后,在 Controller 中,我可以遍历 admin departmentList 并找到创建的所有部门,并找到由于复选框选择而创建的员工。
问题 :( 部门是用空名称和非空 employeeList 创建的。我找不到 employeeList 所属部门的名称 :( 那么我如何传递一些部门名称所以名称被注入(inject)部门(在创建时)就像“.employeeList”被注入(inject)部门一样。
详细信息:向您提供我工作的详细信息:
组织类有两个部门列表。Department 类有一个 Employees 列表。员工有姓名和 hourToWork。
public class Organization{
private long id;
private String name;
private List<Department> adminDepartmentList; //n admin departments
private List<Department> employeeDepartmentList //m employee departments
// default constructor and all getters and setters
}
public class Department{
private long id;
private String name;
private List<Employee> employeeList; //k employees
//default constructor and all getters and setters
}
public class Employee{
private long id;
private String firstName;
private String lastName;
private int hoursToWork; // to be filled from Spring MVC form
//default contructor and all getters and setters
}
部门列表来自 API。该部门的所有员工都来自另一个 API。
我正在编写一个客户端,使用户能够创建“自定义组织”,方法是首先选择他们感兴趣的部门,然后对于所选的每个部门,用户从与该部门相关的所有员工中选择一个员工子集。
所以我有 3 个 JSP 表单:
组织表单 (organization.jsp):组织名称的输入字段和所有部门的复选框列表。用户可以为正在创建的新组织选择一组部门。
<form:form name='fs' action="department.htm" method='POST' commandName="organization">
Organization Name:
<input type="text" name="name" >
<!-- ============================================================== -->
Departments:<br> Select admin-departments you want.
<div class="checkbox-list">
<%-- Size :<c:out value="${organization.adminDepartmentList.size}"/> --%>
<c:forEach var="i" varStatus="status" items="${organization.adminDepartmentList}">
<input type="checkbox" name="adminDepartmentList" value="${i.name}"> <c:out value="${i.name}" /><br>
</c:forEach>
</div>
<!-- ============================================================== -->
Departments:<br> Select employee-departments you want.
<div class="checkbox-list">
<c:forEach var="i" varStatus="status" items="${organization.employeeDepartmentList}">
<input type="checkbox" name="employeeDepartmentList" value="${i.name}"> <c:out value="${i.name}" /><br>
</c:forEach>
</div>
<button type="submit" class="btn btn-lg btn-primary btn-block">Next Step</button>
</form:form>
部门表单 (department.jsp):对于每个选定的部门,这会显示要为该部门选择的员工的复选框列表。
<form:form name='f' action="employee.htm" method='POST' commandName="organization">
Organization Name: <c:out value="${organization.name}" /><br>
Select Employees you want for your new Departments.
Admin Departments:<br>
<c:forEach var="department" varStatus="status" items="${organization.adminDepartmentList}">
______Dept: <c:out value="${department.name}" /><br>
<div class="checkbox-list">
<c:forEach var="employee" varStatus="status" items="${department.employeeList}">
<input type="checkbox" name="adminDepartmentList[${status.index}].employeeList" value="${employee.firstName}"> <c:out value="${employee.firstName}" /><br>
</c:forEach>
</div>
</c:forEach>
Employee Departments:<br>
<c:forEach var="department" varStatus="status" items="${organization.employeeDepartmentList}">
______Dept: <c:out value="${department.name}" /><br>
<div class="checkbox-list">
<c:forEach var="employee" varStatus="status" items="${department.employeeList}">
<input type="checkbox" name="employeeDepartmentList[${status.index}].employeeList" value="${employee.firstName}"> <c:out value="${employee.firstName}" /><br>
</c:forEach>
</div>
</c:forEach>
<button type="submit" class="btn btn-lg btn-primary btn-block">Next Step</button>
</form:form>
员工表单 (employee.jsp):对于在部门表单中选择的每个员工,这会显示员工姓名和用于输入将分配给该员工的工时的字段。
员工 Controller (部门名称为空的那个)
@RequestMapping(value = "/employee", method = RequestMethod.POST)
public String product_post(@ModelAttribute("organization") Organization organization, HttpServletRequest request,
HttpServletResponse response, BindingResult result, ModelMap model) {
System.out.println("=========== POST Employee CONTROLLER===============");
//STEP 1. show me which employees are selected for each admin department.
List<Department> adminDepartments = organization.getAdminDepartmentList();
for(Department dept: adminDepartments){
System.out.println("Admin Dept name::: " + dept.getName()); //<-----------Name Comes as null :(
List<Employee> employeeList = dept.getEmployeeList();
for(Employee emp: employeeList){
System.out.println("Employee::"+ emp.getFirstName());
}
}
//STEP 2. show me which employees are selected for each employee department.
List<Department> employeeDepartments = organization.getEmployeeDepartmentList();
for(Department dept: employeeDepartments){
System.out.println("Employee Dept name::: " + dept.getName()); //<----------Name Comes as null :(
List<Employee> employeeList = dept.getEmployeeList();
for(Employee emp: employeeList){
System.out.println("Employee::"+ emp.getFirstName());
}
}
model.addAttribute("organization", organization);
return "employee";
}
已知的:我明白为什么 department.name 没有被注入(inject),但我不确定如何解决它。如何将部门名称从外部循环注入(inject)到在下面的 c:foreach 中遍历员工列表的内部循环?或者如何以某种方式将它绑定(bind)到每个员工。我怀疑它在这里:
Admin Departments:<br>
<c:forEach var="department" varStatus="status" items="${organization.adminDepartmentList}">
______Dept: <c:out value="${department.name}" /><br>
<div class="checkbox-list">
<c:forEach var="employee" varStatus="status" items="${department.employeeList}">
<input type="checkbox" name="adminDepartmentList[${status.index}].employeeList" value="${employee.firstName}"> <c:out value="${employee.firstName}" /><br>
</c:forEach>
</div>
</c:forEach>
我尝试了隐藏输入来帮助创建命名部门,但它没有帮助。
致谢:
为简单起见,假设员工的名字是唯一的。而 department.name 也是唯一的。谢谢。
最佳答案
新闻:哇哦,天哪,我解决了它。
缺失的部分:隐藏输入,告诉要创建哪个部门以及要注入(inject)什么名称。
<form:hidden path="adminDepartmentList[${statusDepartment.index}].name" value="${department.name}" />
将部门名称注入(inject)由 spring 创建的每个部门。
整个解决方案:部门.jsp
<form:form name='f' action="employee.htm" method='POST' commandName="organization">
Organization Name: <c:out value="${organization.name}" /><br>
Select Employees you want for your new Departments.
Admin Departments:<br>
<c:forEach var="department" varStatus="statusDepartment" items="${organization.adminDepartmentList}">
______Dept: <c:out value="${department.name}" /><br>
<div class="checkbox-list">
<form:hidden path="adminDepartmentList[${statusDepartment.index}].name" value="${department.name}" />
<c:forEach var="employee" varStatus="statusEmployee" items="${department.employeeList}">
<form:checkbox path="adminDepartmentList[${statusDepartment.index}].employeeList" value="${employee.firstName}"/> <c:out value="${employee.firstName}" /><br>
</c:forEach>
</div>
</c:forEach>
Employee Departments:<br>
<c:forEach var="department" varStatus="statusDepartment" items="${organization.employeeDepartmentList}">
______Dept: <c:out value="${department.name}" /><br>
<div class="checkbox-list">
<form:hidden path="employeeDepartmentList[${statusDepartment.index}].name" value="${department.name}" />
<c:forEach var="employee" varStatus="statusEmployee" items="${department.employeeList}">
<form:checkbox path="employeeDepartmentList[${statusDepartment.index}].employeeList" value="${employee.firstName}"/> <c:out value="${employee.firstName}" /><br>
</c:forEach>
</div>
</c:forEach>
<button type="submit" class="btn btn-lg btn-primary btn-block">Next Step</button>
</form:form>
关于java - Spring MVC 将嵌套自定义类型列表绑定(bind)到多个 JSP 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19854171/
是否可以让标准 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) 首字母大写的驼峰
我是一名优秀的程序员,十分优秀!