2014-10-22 4 views
1

У меня есть веб-приложение для проведения аудитов. Все работает отлично, за исключением одного действия. Форма JSP для ввода пользователей и местоположения для каждой назначенной аудиторской проверки не отправляетсяДействия Struts2, к которым осуществляется только одна комбинация машин/браузеров

Он работает без ошибок при использовании браузера Firefox на моей машине Windows7 (в безопасном режиме тоже). При использовании других компьютеров или других браузеров (Google Chrome) на моей машине действие не выполняется, а просто перенаправляется. Я поставил точку останова в 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, где вы используете это действие. –

+0

@AleksandrM отредактировал вопрос для добавления jsp –

+0

Попробуйте использовать обычный ввод для отправки вместо кнопки. –

ответ

0

Если он работает в вашем браузере, но он не работает в других браузерах , и он не работает в любой браузер в другой маме chines, включая тот, который работает в вашем, тогда он должен быть связан с настройками браузера. Внимательно проверьте настройки сети/прокси-сервера вашего Chrome и попробуйте применить их к другому браузеру на вашем компьютере.

Если это не сработает, 1) включите devMode и ищите исключения или сообщения об ошибках и 2) проверьте сетевую связь с Chrome DevTools, затем сравните отправленный запрос (заголовки, параметры) с тем, который был отправлен с помощью браузер не работает, например Firefox с Firefox DevTools или Firebug.

+0

И что? Какой-либо прогресс ? –

0

Причина, по которой форма не работает, заключается в том, что она не правильно отобразилась в действии Struts. Вы можете использовать тег s:form и проверить, не попадает ли он в действие. Это может повредить вашему дизайну, но вы можете попробовать тему simple на форме

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