簡體   English   中英

嘗試在jQuery + Struts2中執行ajax getJson或post操作時,Tomcat7上出現500個內部服務器錯誤

[英]500 internal server error on Tomcat7 while trying to do ajax getJson or post operation in jQuery + Struts2

[已解決]操作名稱竟然區分大小寫

我想向服務器發出ajax請求以獲取JSON。 我正在使用以這種方式配置的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 post塊是

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

        });  
});

在獲取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()或其他消息均不顯示。

我不知道我在做什么錯。 謝謝

$.post()/$.getJSON()函數的data參數要么必須是一個對象,要么是一個URL參數字符串; 您不能只將其傳遞一個值,並期望它知道如何處理它。 因此,要么:

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

    });  

要么

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

    });  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM