当前位置: 首页 > 知识库问答 >
问题:

如何在spring MVC中呈现局部视图

莫宁
2023-03-14

我试图在我的jsp视图页面中包含一个部分视图。我怎么能那样做?我想将我的“addemployeeContacts.jsp”包含到“addemployee.jsp”页面中。addemployee.jsp<%@page language=“Java”contenttype=“text/html;charset=iso-8859-1”pageencoding=“iso-8859-1”%><%@taglib prefix=“form”uri=“http://www.springframework.org/tags/form”%><%@taglib prefix=“fmt”uri=“http://Java.sun.com/jsp/jstl/fmt”%>在此插入标题

null

            <tr>
                <td>Date of Birth:</td>
                <td><form:input path="dob" type="date"/></td>
            </tr>
            <tr>
                <td colspan="2">
                <input type="submit" value="Add Employee">
                </td>
            </tr>
            </table>
        </form:form>
        <div>
        <jsp:include page="addEmployeeContacts.jsp">
         ${employeeContacts}
        </jsp:include>
        </div>
    </body>
    </html>
    </code>

和AddemPloyeeContacts.jsp

    <code>
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
     <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
        <h1>Add Employee</h1>
        <form:form commandName="employeeContacts">
            <table>
            <tr>
                <td>Contact Type</td>
                <td><form:input path="contactType"/></td>
            </tr>

            <tr>
                <td>Details</td>
                <td><form:input path="contactValue"/></td>
            </tr>

            <tr>
                <td colspan="2">
                <input type="submit" value="Add Contacts">
                </td>
            </tr>
            </table>
        </form:form>
    </body>
    </html>
    </code>

AddemployeContactController

package com.employee.comtroller;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.employee.model.Employee;
import com.employee.model.EmployeeContacts;
import com.employee.service.EmployeeContactsService;

@Controller
public class ContactsController {

    @Autowired
    private EmployeeContactsService employeeContactService;

    @RequestMapping(value="/addEmployeeContacts", method=RequestMethod.GET)
    public String addEmployeeContacts(@ModelAttribute("employeeContacts") EmployeeContacts employeeContacts,Model model){
        model.addAttribute(employeeContacts);
        return "addEmployeeContacts";

    }

    @RequestMapping(value="/addEmployeeContacts", method=RequestMethod.POST)
    public String addEmployeeContacts(@ModelAttribute("employeeContacts") EmployeeContacts employeeContacts,HttpSession session,BindingResult result){

        if(result.hasErrors()){
            System.out.println(result);
            return "addEmployeeContacts";
        }

        else{
            Employee employee = (Employee)session.getAttribute("employee");
            employeeContacts.setEmployee(employee);
            employeeContactService.save(employeeContacts);
        }

        return "redirect:index.jsp";
    }
}

投掷错误

jasperException:java.lang.IllegalStateException:bean名称'employee contacts'的BindingResult和普通目标对象都不能作为请求属性使用

共有1个答案

牧甫
2023-03-14

您需要将.tag用作主页面,将部分视图用作.jsp

对于例如:

像这样创建layout.tag

 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
 <%@tag description="Overall Page template" pageEncoding="UTF-8"%>
 <!DOCTYPE html>
 <html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Home</title>
 </head>
 <body>
    <section class="content">
      <jsp:doBody />
    </section>
 </body>
</html>

然后创建一个部分视图,如下所示

<%@taglib prefix="t" tagdir="/WEB-INF/tags/"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<t:Layout>    
   <div>
       your partial view html content
   </div>
</t:Layout>
 类似资料:
  • 在yii中,我正在创建一个项目。 现在我想创建用于显示新密码插入窗口的小部件。要重置密码,用户需要正确输入安全问题的答案。在此之后,他将获得两个单选按钮。一个标签是“在此处更改密码”,另一个标签是“发送密码重置链接到邮件”。 所以当用户点击第一个单选按钮时,这个小部件将被渲染,它将有两个文本字段用于输入新密码和重复密码,以及提交按钮。那么如何实现这个小部件。 我创建了简单的小部件说你好: 所以,如

  • 问题内容: 如何在控制器的JsonResult中渲染要使用的局部视图? 问题答案: 是一种自定义扩展方法,将视图呈现为。 文章中没有提到它(您最初提到的是什么),但是您可以在文章附带的示例代码中找到它。可以在\ Helpers \ Reders.cs下找到它 这是有问题的方法的代码:

  • 我试图显示MVC图表,如为ASP.NETMVC4创建HTML5图表助手扩展中所示。我有标准的项目工作,但我不能得到多个图形显示在一个单一的视图调用的部分视图一次。 我将跳过查看和类,因为它们已在上面的文章中介绍过。 我创建了一个带有几个视图的控制器: 我用快速助手类填充它 我试图显示所有的图表与 为部分视图调用的是 我得到的是一系列

  • 问题内容: 假设您位于用户控制器中,并且想要获取显示请求的json响应,那么可以在您的views / users /目录中创建一个名为show.json的文件,并在用户之后#show操作完成后,它将呈现文件。 当前,您需要执行以下操作: 但是,如果您可以创建一个show.json文件,它会像这样自动呈现,那就太好了: 这将为我节省大量的痛苦,并且会消除我在控制器中渲染json时得到的那种可怕的肮脏

  • 问题内容: 到目前为止,我已经想通了如何返回Zend框架2.首先一个典型的JSON响应,我加入到了部分配置。然后,我返回一个设置了所有变量的实例,而不是从控制器操作中返回实例。 现在,我已经弄清楚了这一点,我需要了解如何呈现视图并在该JSON响应中返回它。在ZF1中,我能够使用,将HTML作为字符串返回。在ZF2中,该方法返回。 那么…如何呈现HTML视图脚本,并在一个请求中以JSON响应返回它?

  • 问题内容: 在我的应用程序中,我将收到一个字节流,并将其转换为手机内存中的pdf文件。如何将其渲染为pdf?并在活动中显示? 问题答案: 某些手机​​(例如Nexus One)预先安装了Quickoffice版本,因此将文件保存到SD卡后,发送适当的Intent可能很容易。