问题
I am developing a small application in struts 2 with Jquery Grid for displaying data results.
When i click edit button then the specific row id is coming. But when i click the delete button for deleting that row ,then its id is not coming. How to get the id of row when delete action is performed with the selected row(Struts2 Jquery Grid)?
Plz help me for this.
myJspFile.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags"%>
<jsp:include page="../../loginCheck.jsp" />
<html>
<head>
<title>Hello World</title>
<style type="text/css">
@import
url(<%=request.getContextPath()%>/css/style1.css);
</style>
<sj:head jqueryui="true" jquerytheme="le-frog"/>
</head>
<body>
<div id="setpage"> <s:url id="editurl" action="nedit"/>
<s:url id="editurl" action="nedit"/>
<s:url id="remoteurl" action="ntable"/>
<sjg:grid
id="gridtable"
caption="Subject Setup Navigator"
dataType="json"
href="%{remoteurl}"
pager="true"
rowList="10,20,100"
rowNum="5"
navigator="true"
width="999"
navigatorSearchOptions="{sopt:['eq','ne','lt','gt']}"
navigatorAddOptions="{height:280,reloadAfterSubmit:true}"
navigatorEditOptions="{height:280,reloadAfterSubmit:false}"
navigatorEdit="false"
navigatorView="false"
navigatorDelete="true"
navigatorDeleteOptions="{height:280,reloadAfterSubmit:true}"
gridModel="gridModel"
editurl="%{editurl}"
editinline="true"
onSelectRowTopics="rowselect"
>
<sjg:gridColumn name="subjectId" index="subjectId" title="SubjectId" formatter="integer" sortable="false" key="true" hidden="true" />
<sjg:gridColumn name="subjectName" index="subjectName" title="Subject Name" sortable="true" search="true"
editable="true"
edittype="text" />
</sjg:grid>
<br/>
</div>
</body>
</html>
MyActionClass.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package v.esoft.actions.subjectdetails;
import com.opensymphony.xwork2.ActionSupport;
import java.text.SimpleDateFormat;
import com.opensymphony.xwork2.ModelDriven;
import v.esoft.dao.SubjectdetailsDAO.SubjectdetailsDAO;
import v.esoft.pojos.Subjectdetails;
public class SubjectdetailsEditAction extends ActionSupport implements ModelDriven<Subjectdetails>
{
private static final long serialVersionUID = -6659925652584240539L;
private String oper;
int subjectId;
Subjectdetails subject=new Subjectdetails();
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd");
SubjectdetailsDAO dao=new SubjectdetailsDAO();
@Override
public Subjectdetails getModel()
{
return subject;
}
public String execute() throws Exception
{
System.out.println(subject.getSubjectId());
if(oper.equalsIgnoreCase("add"))
{
System.out.println ("inside action");
dao.saveOrUpdateSubject(subject);
}
else if (oper.equalsIgnoreCase("edit"))
{
dao.saveOrUpdateSubject(subject);
}
else if (oper.equalsIgnoreCase("del"))
{
System.out.println("subjectId");
System.out.println(subject.getSubjectId());
// dao.deleteSubject(subjectId);
}
return SUCCESS;
}
//---------------
public String getOper() {
return oper;
}
public void setOper(String oper) {
this.oper = oper;
}
public Subjectdetails getSubject() {
return subject;
}
public void setSubject(Subjectdetails subject) {
this.subject = subject;
}
public int getSubjectId() {
return subjectId;
}
public void setSubjectId(int subjectId) {
this.subjectId = subjectId;
}
}
Subjectdetails.java [My pojo]
package v.esoft.pojos;
// Generated Oct 6, 2012 1:58:21 PM by Hibernate Tools 3.4.0.CR1
import java.util.Date;
/**
* Subjectdetails generated by hbm2java
*/
public class Subjectdetails implements java.io.Serializable {
private int subjectId;
private String subjectName;
private Integer createrId;
private Date createdDate;
private Integer updateId;
private Date updatedDate;
public Subjectdetails() {
}
public Subjectdetails(int subjectId) {
this.subjectId = subjectId;
}
public Subjectdetails(int subjectId, String subjectName, Integer createrId,
Date createdDate, Integer updateId, Date updatedDate) {
this.subjectId = subjectId;
this.subjectName = subjectName;
this.createrId = createrId;
this.createdDate = createdDate;
this.updateId = updateId;
this.updatedDate = updatedDate;
}
public int getSubjectId() {
return this.subjectId;
}
public void setSubjectId(int subjectId) {
this.subjectId = subjectId;
}
public String getSubjectName() {
return this.subjectName;
}
public void setSubjectName(String subjectName) {
this.subjectName = subjectName;
}
public Integer getCreaterId() {
return this.createrId;
}
public void setCreaterId(Integer createrId) {
this.createrId = createrId;
}
public Date getCreatedDate() {
return this.createdDate;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
public Integer getUpdateId() {
return this.updateId;
}
public void setUpdateId(Integer updateId) {
this.updateId = updateId;
}
public Date getUpdatedDate() {
return this.updatedDate;
}
public void setUpdatedDate(Date updatedDate) {
this.updatedDate = updatedDate;
}
}
回答1:
Use id
instead of subjectId
as primary key.
And once again create your sql table and pojo. Then it will work.
来源:https://stackoverflow.com/questions/12785891/stuck-in-obtaining-id-of-a-specific-row-when-users-click-the-delete-button-of-st