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
Release: 2024-12-09 01:28:10
Original
546 people have browsed it

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>
<div class="code" style="position:relative; padding:0px; margin:0px;"><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; 
}
Copy after login

}

Action Class:


public class PartAction implements Serializable {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><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;
}  
Copy after login

}

Struts.xml Configuration:


<package name="default" namespace="/ajax" extends="json-default"></p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><action name=&quot;finder&quot;>
Copy after login




jQuery Success Callback:


var handledata = function(data) {<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$.each(data, function(index) {
    alert(data[index].col1);
    alert(data[index].col2);
});     
Copy after login

}

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!

source:php.cn
Previous article:How Can I Effectively Determine if a Java String Represents an Integer? Next article:Why Does My JUnit Test Fail with "javac: source release 1.7 requires target release 1.7" in IntelliJ IDEA?
Statement of this Website
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
Latest Articles by Author
Latest Issues
Related Topics
More>
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template