0

[解決済み] アクションの名前が大文字と小文字を区別することが判明しました

JSON を取得するために、サーバーに ajax リクエストを実行したいと考えています。このように構成されたstruts2パッケージを使用しています

<package name="it.polito.ai.e3" namespace=""
    extends="struts-default,json-default">
    <action name="getDay" class="it.polito.ai.e3.GetDayAction" >
        <result name="success" type="json" />
        <result name="error" type="json" />
    </action>
</package>

GetDayAction クラスは

package it.polito.ai.e3;

import java.util.Date;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class GetDayAction extends ActionSupport
{
private String startDate;

public String execute()
{
    try
    {
        System.out.println("Ciao");
        System.out.println(startDate);
    }
    catch (Exception e)
    {
        e.printStackTrace();
        return Action.ERROR;
    }

    return Action.SUCCESS;
}

public String getStartDate()
{
    return startDate;
}

public void setStartDate(String startDate)
{
    this.startDate = startDate;
}

}

jQuery投稿ブロックは

$(function() {
    $.post('getday.action', document.getElementById('startDate').innerHTML,
        function(data) {

        });  
});

get jQueryブロックの場合は

$(function() {
    $.getJSON('getday.action', document.getElementById('startDate').innerHTML,
        function(data) {

        });  
});

document.getElementById('startDate').innerHTML文字列でフォーマットされた Date を取得します。

ajax経由でgetまたはpostを実行すると、Tomcatは500内部サーバーエラーとこのスタックトレースを表示します

java.lang.NullPointerException
org.apache.struts2.impl.StrutsActionProxy.getErrorMessage(StrutsActionProxy.java:69)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:500)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:434)

Tomcat7 コンソールには、System.out.println() も他のメッセージも何も表示されません。

私は自分が間違っていることについて手がかりがありません。ありがとう

4

1 に答える 1

1

関数のdataパラメーターは$.post()/$.getJSON()、オブジェクトまたは URL パラメーター文字列である必要があります。単一の値を渡すだけで、それをどう処理するかを知っていると期待することはできません。したがって、次のいずれかです。

$.getJSON('getday.action', { yourparam : document.getElementById('startDate').innerHTML},
    function(data) {

    });  

また

$.getJSON('getday.action', 'yourparam=' + document.getElementById('startDate').innerHTML},
    function(data) {

    });  
于 2012-05-04T15:22:43.893 に答える