0

私のプロジェクトでは、jqgrid の編集および削除オプションをカスタマイズする必要があります。つまり、編集および削除権限を持つユーザーは、グリッド データを編集および削除できます。

この目的のためのコードを見つけました

String edit_permission = util.getEdit_permission();
String delete_permission = util.getDelete_permission(); 
  // sets true or false to the strings and working fine

ValueStack stack = ActionContext.getContext().getValueStack();

stack.getContext().put("edit_permission", edit_permission);
stack.setValue("#attr['edit_permission']", edit_permission, false);

jqgrid コード スニペット

<s:set id="edit_permission" value="#edit_permission"/>
<s:set id="delete_permission" value="#delete_permission"/> 

<sjg:grid
       id="gridtable"
       dataType="json"
       href="%{remoteurl}"
       pager="true"
       gridModel="gridModel"
       rowList="5,10,15,20"
       rowNum="5"

       navigator="true"
       navigatorAdd="false"
       navigatorEdit="#edit_permission"
       navigatorDelete="#delete_permission" >

Thw コードは私が取った場所からは正常に動作していますが、私の場合はエラーがスローされています。ここにログがあります

WARNING: Error setting expression '#attr['edit_permission']' with value 'true'
ognl.OgnlException: target is null for setProperty(null, "edit_permission", true)
at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2219)
at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at ognl.SimpleNode.setValue(SimpleNode.java:301)
at ognl.ASTChain.setValueBody(ASTChain.java:227)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at ognl.SimpleNode.setValue(SimpleNode.java:301)
at ognl.Ognl.setValue(Ognl.java:737)......


WARNING: Error setting expression '#attr['delete_permission']' with value 'true'
ognl.OgnlException: target is null for setProperty(null, "delete_permission", true)
at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2219)
at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at ognl.SimpleNode.setValue(SimpleNode.java:301)
at ognl.ASTChain.setValueBody(ASTChain.java:227)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at ognl.SimpleNode.setValue(SimpleNode.java:301)
at ognl.Ognl.setValue(Ognl.java:737)
at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:198)
at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:161)
at org.apache.jsp.Production.projectIdCreation_jsp._jspService(projectIdCreation_jsp.java:306)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)

このエラーの実際の原因を特定できませんでした....plz help.

4

1 に答える 1

0

アクション:

private String editPermission;
private String deletePermission; 

public String execute() throws Exception{
    editPermission = util.getEdit_permission();
    deletePermission = util.getDelete_permission();
    return SUCCESS;
}

/* Getters */

public String getEditPermission(){
    return editPermission;
}

public String getDeletePermission(){
    return deletePermission;
}

EclipseALTSHIFTSでゲッターを生成してからGenerate Getters and Setters...

次に、JSP のグリッド コード内で次のようにします。

...
  navigatorEdit = "%{editPermission}"
navigatorDelete = "%{deletePermission}"
...
于 2014-04-08T08:16:56.037 に答える