Struts2 表单提交不击中方法



我有一个这样的.jsp形式

<s:form action="AuditLogReport">Source IP<br>
<input type="text" class="auditLogSearch" name="sourceIp" value="All">
<input type="submit" value="Submit"/>
</s:form>

我的支柱.xml被定义

    <action name="AuditLogReport" 
    class="com.mycom.selfservice.actions.AuditLogAction" method="auditLogReport">  
                <result name="success">jsp/AuditLog.jsp</result> 
                <result name="error">jsp/Error.jsp</result>  
    </action>

这是我的类定义

public class AuditLogAction extends ActionSupport implements Action,ServletRequestAware {

在我的AuditLogAction类中,有一个方法

public String auditLogReport() {
    System.out.println("Im in auditLogReport...");

但是当我单击该按钮时,auditLogReport方法不会被击中。 我在浏览器网址中看到的是http://localhost:7001/BPSelfServicePortal/AuditLogReport.action

它正在附加 .action,我认为这就是它找不到该方法的原因。 所以我试着把

 <constant name="struts.action.extension" value=""/> 

在支柱.xml。 这阻止了 .action 被附加,但按钮仍然不起作用。 此外,它还导致.css和图像被发现。 我有一个使用默认 execute() 方法并且工作正常的链接。

如果我只是删除 url 中的 .action 并按回车键,它会命中该方法,但随后表单中的任何值都不会传递。

建议?

问题原来是日期参数。 显然 struts2 不喜欢它们。

public Date getFromDate() {
    return fromDate;
}
public void setFromDate(Date fromDate) {
    this.fromDate = fromDate;
}

将其更改为

public String getFromDate() {
    return fromDate;
}
public void setFromDate(String fromDate) {
    this.fromDate = fromDate;
}

然后它奏效了!

最新更新