Home >Java >javaTutorial >How to Resolve 'No result defined for action action.Part and result' Errors in Struts2 with JSON Plugin?

How to Resolve 'No result defined for action action.Part and result' Errors in Struts2 with JSON Plugin?

Barbara Streisand
Barbara StreisandOriginal
2024-12-09 01:28:10551browse

How to Resolve

Unauthorized Access to Non-existent Action or Result


The error message "No result defined for action action.Part and result {"col1":"col1","col2":"col2"}" indicates that Struts2 is unable to locate the specified action or result in your application configuration.


Understanding Struts2-JSON Plugin


The Struts2-JSON plugin serializes the entire action into JSON by default, excluding transient properties or those without getters. However, you can customize this behavior by specifying a root object that defines which portion of the action should be serialized.


Resolving the Issue Using Root Object


In your case, you can define a custom root object, like MyRow, to represent the data structure of your rows. You can then use this root object in your Struts2 configuration to specify that the JSON serialization should use it instead of the entire action.


Here's an example of how your code could look:


Value Object:


public class MyRow implements Serializable {</p>
<pre class="brush:php;toolbar:false">private static final long serialVersionUID = 1L;

private String col1; 
private String col2;

// Getters
public String getCol1(){ 
    return this.col1; 
}
public String getCol2(){ 
    return this.col2; 
}

}

Action Class:


public class PartAction implements Serializable {</p>
<pre class="brush:php;toolbar:false">private static final long serialVersionUID = 1L;

private List<MyRow> rows;   

// Getter
public  List<MyRow> getRows() { 
    return this.rows; 
} 

public String finder() {
    String result = Action.SUCCESS;
    rows = new ArrayList<MyRow>();

    try {
        Iterator it = findList.iterator();
        while(it.hasNext()) {
            SearchResult part = (SearchResult) it.next();
            MyRow row = new MyRow();
            row.setCol1(part.getcol1());
            row.setCol2(part.getcol2());
            rows.add(row);
        }
    } catch (Exception e) {
        result = Action.ERROR;
        log.error(e);
    }
    return result;
}  

}

Struts.xml Configuration:


<package name="default" namespace="/ajax" extends="json-default"></p>
<pre class="brush:php;toolbar:false"><action name=&quot;finder&quot;>




jQuery Success Callback:


var handledata = function(data) {<pre class="brush:php;toolbar:false">$.each(data, function(index) {
    alert(data[index].col1);
    alert(data[index].col2);
});     

}

The above is the detailed content of How to Resolve 'No result defined for action action.Part and result' Errors in Struts2 with JSON Plugin?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn