2014-10-22 26 views
1

我有用于进行审计的Web应用程序。除了一个动作之外,一切正常。没有提交用于输入用户的JSP表单和每个审核分配的位置Struts2操作只能通过一台机器/浏览器组合访问

从我的Windows7机器的Firefox浏览器(安全模式下)执行时,它没有任何缺陷。在我的机器上使用其他机器或其他浏览器(谷歌浏览器)时,操作不会执行,而只是重定向。我在eclipse中为该特定方法放置了一个断点,并发现它不会被命中,除非从我的Windows7/Firefox进行访问。

这种行为可能有任何可能的原因吗?我该如何解决它?

来源:

audit.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
    "http://struts.apache.org/dtds/struts-2.0.dtd"> 
<struts> 
<package name="com.hereafter.audit.ui.servlet" namespace="/audit" 
    extends="struts-default,json-default"> 

.... 

    <action name="*Audit" class="com.hereafter.audit.ui.servlet.AuditAction" method="{1}">  
     <result name="success" type="redirectAction">    
      <param name="actionName">jspAudit</param> 
      <param name="namespace">/audit</param> 
     </result> 
     <result name="message">/audit/pages/template/Message.jsp</result> 
    </action> 

.... 

</package> 
</struts> 

AssignAudit.jsp

<%@ taglib prefix="s" uri="/struts-tags"%> 


    <form id="AuditAssignForm" action="assignAudit.action" method="post"> 
     <div > 
      <h5>Instruction Details</h5> 
      <label>Users :</label> 
      <s:select id="user-multiselect" name="assignment.userList" 
       cssClass="input-xlarge" multiple="multiple" list="userList" 
       listKey="userID" listValue="userName"></s:select>     

      <label>Start Time :</label> 
      <div id="datetimeStartTime" class="input-append date"> 
       <input data-format="dd/MM/yyyy hh:mm:ss" 
        name="assignment.scheduleInformation.timeStart" type="text" 
        class="input-large"></input> <span class="add-on"> <i 
        data-time-icon="icon-time" data-date-icon="icon-calendar"> </i> 
       </span> 
      </div> 

      <label>End Time</label> 
      <div id="datetimeEndTime" class="input-append date"> 
       <input data-format="dd/MM/yyyy hh:mm:ss" 
        name="assignment.scheduleInformation.timeEnd" type="text" 
        class="input-large"></input> <span class="add-on"> <i 
        data-time-icon="icon-time" data-date-icon="icon-calendar"> </i> 
       </span> 
      </div> 

      <label>Events</label> 
      <s:select id="event-drop-down" cssClass="input-xlarge" 
       list="eventList" listKey="eventID" listValue="eventName"></s:select> 
      <label>Audit Type</label> <select name="assignment.auditType"> 
       <option value="LIVE">LIVE VIEW</option> 
       <option value="RECORDED">RECORDED</option> 
      </select> 


      <div> 
       <button id="assign-audit-button" class="btn btn-primary" 
        type="submit"> 
        <i class="icon-save"></i> Save 
       </button> 
       <a href="#myModal" data-toggle="modal" class="btn">Cancel</a> 
       <div class="btn-group"></div> 
      </div> 
     </div> 
     <div class="block span6"> 
      <div class="block-heading"> 
       <a>Locations</a> 
      </div> 
      <div class="block-body" 
       style="min-height: 250px; height: 350px; overflow: auto;"> 
       <div id="location-tree"></div> 
       <div class="clearfix"></div> 
      </div> 
     </div> 
     <s:hidden name="audit.id"></s:hidden> 
    </form> 
</div> 

+0

显示你的JSP在哪里使用这个动作。 – 2014-10-22 07:36:00

+0

@AleksandrM编辑的问题添加jsp – 2014-10-22 07:41:12

+0

尝试使用正常的提交输入,而不是按钮。 – 2014-10-22 07:43:31

回答

0

如果它在你的浏览器,但它并没有在其他浏览器,并且在其他任何浏览器中都不起作用中文,包括在你工作的那个,那么它必须是与浏览器设置相关的。仔细检查Chrome的网络/代理设置,然后尝试将它们应用到计算机中的其他浏览器。

如果不起作用,1)启用devMode并查找异常或错误消息,以及2)检查与Chrome DevTools的网络通信,然后将发送的请求(标​​头,参数)与发送的请求浏览器无法正常工作,例如Firefox与Firefox DevTools或Firebug。

+0

那又如何?任何进展 ? – 2014-10-23 15:31:51

0

表单不起作用的原因是它没有正确映射到Struts操作。您可以使用s:form标记并检查它是否触及该操作。这可能会伤害你的设计,但你可以尝试一个simple主题的表格

<s:form id="AuditAssignForm" namespace="/audit" action="assignAudit" method="POST" theme="simple">