【发布时间】:2015-05-02 22:33:38
【问题描述】:
我在 Firefox for Mac 上使用 Firebug,以查看有关发送到服务器的请求数据的信息以及从服务器获取的响应。我的 Spring+Hibernate+JSF+MySQL 应用程序有问题;即我无法将新对象持久保存到数据库中。在 Eclipse 中,我有一个 XHTML 文件,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:head>
<title>JSF Spring Hibernate Integration</title>
<style type="text/css">
.tg {
border-collapse: separate;
border-spacing: 0;
border-color: #ccc;
}
.tg td {
font-family: Arial, sans-serif;
font-size: 14px;
padding: 10px 5px;
border-style: solid;
border-width: 1px;
overflow: hidden;
word-break: normal;
border-color: #ccc;
color: #333;
background-color: #fff;
}
.tg th {
font-family: Arial, sans-serif;
font-size: 14px;
font-weight: normal;
padding: 10px 5px;
border-style: solid;
border-width: 1px;
overflow: hidden;
word-break: normal;
border-color: #ccc;
color: #333;
background-color: #f0f0f0;
}
.tg .tg-4eph {
background-color: #f9f9f9
}
</style>
</h:head>
<h:body>
<h1>Add a Person</h1>
<h:form>
<table>
<tr>
<td><label>Name</label></td>
<td><h:inputText id="Name" value="#{person.name}"></h:inputText>
</td>
</tr>
<tr>
<td><label>Country</label></td>
<td><h:inputText id="country" value="#{person.country}"></h:inputText>
</td>
</tr>
<tr>
<td colspan="2"><h:commandButton
action="#{personService.addPerson(person)}" value="Add Person"></h:commandButton>
</td>
</tr>
</table>
</h:form>
<br />
<h3>Persons List</h3>
<c:if test="${!empty personService.listPersons()}">
<table class="tg">
<tr>
<th width="80">Person ID</th>
<th width="120">Person Name</th>
<th width="120">Person Country</th>
</tr>
<ui:repeat value="${personService.listPersons()}" var="person">
<tr>
<td>${person.id}</td>
<td>${person.name}</td>
<td>${person.country}</td>
</tr>
</ui:repeat>
</table>
</c:if>
</h:body>
</html>
我是 Firebug 的新手,对 Firebug 非常缺乏经验,但是在 Firebug 上检查 GET 和 POST 参数时,我发现了一些有趣的东西。单击 JSF 视图页面上的“添加人员”按钮后;用户输入“名称”和“国家/地区”字段的数据作为 POST 参数发送,名称为 j_idt6:Name 和 j_idt6:country,而不仅仅是“名称”和“国家/地区”。此外,javax.faces.ViewState 对我来说似乎有点奇怪。这里是截图:
我不确定,但我想这可能会导致在我的数据库中持久保存新对象失败。这是我的问题:如何在 Firebug 上编辑这些参数?如何使它们正常工作?
【问题讨论】:
-
你问错了问题是为了解决问题。