티켓 클래스는 스트럿 :추가 할 수있는 가장 좋은 방법은 무엇입니까/최대 절전 모드로 대일 매핑 개체를 삭제하고
@Entity
@Table(name="tickets")
public class Ticket implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name="requester_name")
private String requesterName;
@ManyToOne
private BusinessPurpose business_purpose;
@ManyToOne
private Park park;
@Column(name="no_of_tickets")
private Integer noOfTickets;
@ManyToOne
private Status status;
@ManyToOne
private User user;
이 내가 사용자가 정보를 입력 할 수 있도록하고 JSP의 일부입니다 새 티켓. 이 jsp는 정의 된 모든 필드가있는 ticketDTO 객체를 통해 데이터를 가져옵니다.
function submitRegistration()
{
var bpl = document.getElementById("bpl");
document.forms['ticketRequestForm'].businessPurpose.value = bpl.options[bpl.selectedIndex].text;
document.forms['ticketRequestForm'].park.value = document.forms['ticketRequestForm'].parkName.options[document.forms['ticketRequestForm'].parkName.selectedIndex].text;
document.forms['ticketRequestForm'].stateName.value = document.forms['ticketRequestForm'].stateId.options[document.forms['ticketRequestForm'].stateId.selectedIndex].text;
document.forms['ticketRequestForm'].countryName.value = document.forms['ticketRequestForm'].countryId.options[document.forms['ticketRequestForm'].countryId.selectedIndex].text;
return isValid();
}
<s:form id="ticketRequestForm" method="post"
action="submitTicket" theme="simple"
onsubmit="return submitRegistration();">
<s:hidden name="businessPurpose" />
<s:hidden name="park" />
<td id="formtxt" width="20%">Requestor's Name</td>
<td valign="middle">
<p class="form">
<s:textfield name="requesterName">
</s:textfield>
</p>
</td>
</tr>
<tr>
<td id="formtxt" width="15%">Business Purpose</td>
<td valign="middle">
<p class="form">
<s:select id="bpl" list="businessPurposeList"
name="businessPurposeId" listKey="id"
listValue="businessPurposeName" onchange="businessList();"></s:select>
</p>
</td>
</tr>
<td id="formtxt" width="15%">Which Park</td>
<td valign="middle">
<p class="form">
<s:select list="parkList" name="parkId" listKey="id"
listValue="name"></s:select>
</p>
</td>
</tr>
</table>
</s:form>
추신 : 이것은 작동중인 jsp에서 삭제 된 버전입니다. 게시물을 짧게 유지하려고 할 때 누락 된 태그가 있음을 기억하십시오. 필자의 주요 초점은 객체 내부의 객체로 채워지는 목록에 있습니다.
이제 내 첫 번째 질문은 - 어떻게 든 저장 및 편집 작업 모두에 대해 하나의 JSP를 사용할 수 있습니까 ?? 하나의 티켓 개체 아래에서 완벽한 세부 정보를 얻을 수 있습니다.
하지만 지금은 편집을 위해 다른 JSP를 구현했습니다. 이 JSP 파일은 액션 클래스에 채워진 티켓 객체를 통해 값을 가져옵니다.
function submitRegistration()
{
var bpl = document.getElementById("bpl");
document.forms['ticketRequestForm'].businessPurpose.value = bpl.options[bpl.selectedIndex].text;
document.forms['ticketRequestForm'].park.value = document.forms['ticketRequestForm'].parkName.options[document.forms['ticketRequestForm'].parkName.selectedIndex].text;
document.forms['ticketRequestForm'].stateName.value = document.forms['ticketRequestForm'].stateId.options[document.forms['ticketRequestForm'].stateId.selectedIndex].text;
document.forms['ticketRequestForm'].countryName.value = document.forms['ticketRequestForm'].countryId.options[document.forms['ticketRequestForm'].countryId.selectedIndex].text;
return isValid();
}
<s:form id="ticketRequestForm" method="post"
action="editTicket" theme="simple"
onsubmit="return submitRegistration();">
<s:hidden name="businessPurpose" />
<s:hidden name="park" />
<s:hidden name="stateName" />
<s:hidden name="countryName" />
<tr>
<td id="formtxt" width="20%">Requestor's Name</td>
<td valign="middle">
<p class="form">
<s:textfield name="%{ticket.requesterName}" value="%{ticket.requesterName}">
</s:textfield>
</p>
</td>
</tr>
<tr>
<td id="formtxt" width="15%">Business Purpose</td>
<td valign="middle">
<p class="form">
<s:select id="bpl" list="businessPurposeList"
name="%{ticket.businessPurpose.businessPurposeId}" listKey="id"
listValue="%{ticket.businessPurpose.businessPurposeName}" onchange="businessList();"></s:select>
</p>
</td>
<td id="formtxt">Country</td>
<td valign="middle">
<p class="form">
<s:select list="countriesList" name="ticket.country.countryId" listKey="id"
listValue="ticket.country.countryName"></s:select>
</p>
<p class="yellowLg">All fields are required.</p>
<p>
<s:submit name="Submit" title="Submit"></s:submit>
</p>
</table>
</s:form>
문제 : 내 문제는 내가 실제로 내 주요 개체의 내부 객체 편집 페이지 내부의 목록을 표시 할 수 없습니다 오전입니다. 여기서 많은 일대일 관계가 당신에게 분명하기를 바랍니다. BusinessPurpose와 마찬가지로, pojo는 hibernate를 통해 테이블에 매핑되고 Ticket 클래스는 many-to-one으로 매핑 된이 객체를 가진다. Park 및 상태는입니다. 내가하려고하는 것은 모든 Parks와 Statuses의 목록을 가져 와서 struts 태그에 표시하고 나중에 편집 할 값을 얻는 것입니다. 그러나 편집 페이지에서 전체 목록은 이전 값으로 채워집니다. 편집 된/새 값을 사용하여 액션 클래스 내에서 티켓 객체를 다시 가져 오는 방법은 무엇입니까?
이해가되지 않는 경우 불분명 한 부분을 지적하십시오. 나는 정교하게 노력할 것이다. 첫 번째 질문에 대해서는
는