2014-04-23 9 views
0

첫 번째 문제 : 두 개의 탭이있는 JSP가 있는데 두 번째 탭에는 struts 포함 태그가 포함되어 있습니다. 두 번째 탭을 열고 작업을 수행하면 두 번째 탭 양식 값이 작업으로 전달되지 않습니다.jsp 다른 JSP struts 2

2 문제 : select 태그에 내가 목록을 채울 수 있지만 = "선택"선택한 모든 옵션 로 오는 미리 입력 수단으로오고있다

을 만들어하는 주요 JSP
<!-- admin first tab starts here --> 
    <form action="saveRolesAndPermissions" method="post"> 
    <table align="center"> 
     <tr> 
      <td ><s:text name="FTID" ></s:text></td> 
      <td ><s:textfield id="FTID" name="ft_id"> 
       </s:textfield></td> 
       <td><input type="button" value="validate" onclick="userPresent()"></td> 
     </tr> 

    </table> 

      <table> 
       <tr> 
        <td>First Name</td> 
        <td><input id="first_name" type="text" readonly onkeydown="return false"></td> 
        <td>Last Name</td> 
        <td><input id="last_name" 
         type="text" readonly onkeydown="return false"></td> 
        <td>Email-Id</td> 
        <td><input id="mail_id" type="text" 
         readonly onkeydown="return false"></td> 
       </tr> 
      </table> 


      <table align="center"> 
     <tr> 
      <td><s:text name="ROLES"></s:text></td> 
      <td></td> 
      <td></td> 
     </tr> 
     <tr> 
      <td><s:text name="Available Roles"></s:text></td> 
      <td></td> 
      <td><s:text name="Assigned Roles"></s:text></td> 
     </tr> 
     <tr> 
      <td><s:select id="roles" name="availableRole" 
        multiple="true" list="availableRole"></s:select></td> 
      <td><input type="button" value="&gt" onclick="move_list_items('roles','assignedroles');"/><input 
       type="button" value="&lt" onclick="move_list_items('assignedroles','roles');"/></td> 

      <td><s:select id="assignedroles" name="assignedRole" multiple="true" 
        list="{}" > 
        </s:select></td> 
     </tr> 
    </table> 
    <br /> <br /> <br /> 
    <table> 
     <tr> 
      <td><s:text name="Permissions"></s:text></td> 
      <td></td> 
      <td>&nbsp;</td> 
     </tr> 
     <tr> 
      <td><s:text 
        name="Available Permissions"></s:text></td> 
      <td></td> 
      <td><s:text name="Assigned Permissions"></s:text></td> 
     </tr> 
     <tr> 
      <td><s:select id="permissions" multiple="true" 
        name="availablePermission" list="availablePermission" headerValue=""></s:select></td> 
      <td><input 
       type="button" value="&gt" onclick="move_list_items('permissions','assignedpermissions');"/><br /> <input type="button" 
       value="&lt" onclick="move_list_items('assignedpermissions','permissions');" /></td> 
      <td><s:select id="assignedpermissions" multiple="true" name="assignedPermission" 
        list="{}" ></s:select></td> 
     </tr> 
    </table> 
    <br /> <br /> 

      <table align="center" style="width: 25%;"> 
       <tr> 
        <td><s:if test="hasActionMessages()"> 
          <div class="welcome" style="list-style:none"> 
           <s:actionmessage /> 
          </div> 
         </s:if></td> 
       </tr> 
      </table> 


      <table> 
     <tr> 
      <td><s:submit 
        value="save"onclick="saveRole();return false;"></s:submit></td> 
      <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" name="close" 
       value="close" /></td> 
     </tr> 
     <tr> 
      <td></td> 
      <td></td> 
     </tr> 
    </table> 
    </form> 


<!-- second tab for modify roles --> 
<div id="content02" class="content" > 
<s:include value="../asp/aspAdminModify.jsp"></s:include> 
</div> 
<!-- /second tab ends here --> 

는 JSP

<form action="grantedRolesAndPermissions" method="post"> 
    <table> 
     <tr> 
      <td><s:text name="FTID" ></s:text></td> 
      <td><s:textfield id="modify_FTID" name="modifyftid"> 
       </s:textfield></td> 
       <td><s:submit 
        value="search" onclick="search();return false;"></s:submit> 
       </td> 
     </tr> 

    </table> 
012를 포함 SECON에 대한 두 번째 탭의 첫 번째 탭의 첫 번째 탭에 대한 3,516,

private String ft_id; 
    private ArrayList<String> availableRole; 
    private ArrayList<String> availablePermission; 
    private ArrayList<String> assignedRole; 
    private ArrayList<String> assignedPermission; 
//getters and setters 

액션

public class ASPadmin extends ActionSupport implements ServletRequestAware, ModelDriven<ASPAdminBean>{ 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 
    private AdminASPService aspService = new AdminASPService(); 
    private HttpServletRequest request = ServletActionContext.getRequest(); 
    private HttpServletResponse response = ServletActionContext.getResponse(); 
    public CMTUser cmtuser; 
    private ASPAdminBean aspAdminBean = new ASPAdminBean(); 


    //getters and setters 



    public String populateRolesAndPermissions() throws Exception 
    { 
     /*aspAdminBean=new ASPAdminBean();*/ 
     aspAdminBean.setAvailableRole(aspService.getRolesList()); 
     aspAdminBean.setAvailablePermission(aspService.getPermissionsList()); 
     return SUCCESS; 

    } 

    public String saveRolesAndPermissions() throws Exception 
    { 

     User user = CMTUser.getUser(request); 
     String login = user.getUserId(); 
     String[] temp = login.split("\\."); 
     String abcfinal = temp[0].substring(0, 1).toUpperCase() 
       + temp[0].substring(1); 
     String deffinal = temp[1].substring(0, 1).toUpperCase() 
       + temp[1].substring(1); 
     String name = abcfinal + " " + deffinal; 
     System.out.println("name ==============>" + name); 
     String id = aspService.saveRolesPermissions(aspAdminBean,name); 
     System.out.println("id=======>"+id); 
     if("Y".equals(id)){ 
      addActionMessage("Record Inserted Successfully"); 
      populateRolesAndPermissions(); 
      return SUCCESS; 
     } 
     else{ 
      return ERROR; 
     } 

    } 

    @Override 
    public String execute() throws Exception { 
     String url = request.getRequestURL().toString(); 
     String[] actionArray = url.split("/"); 
     String event = null; 
     String forward = SUCCESS; 
     for (int i = 0; i < actionArray.length; i++) { 
      event = actionArray[i]; 

     } 
     System.err.println(event); 
     try { 


      if (event.equals("aspAdmin.action")) { 

        populateRolesAndPermissions(); 

      } 
     }catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return SUCCESS; 
    } 

    @Override 
    public void setServletRequest(HttpServletRequest req) { 
     this.request = req; 

    } 

    @Override 
    public ASPAdminBean getModel() { 
     // TODO Auto-generated method stub 
     return aspAdminBean; 
    } 

} 

빈은

public class ASPAdminModifyBean { 
    private String modifyftid; 
    private String aspmodifyassignedRole; 
    private String aspmodifyassignedPermission; 
    private String createddate; 
    private String createdby; 
    private String updateddate; 
    private String updatedby; 
    private String username; 
    private ArrayList<String> modifyavailableRole; 
    private ArrayList<String> modifyavailablePermission; 
    private ArrayList<String> modifyassignedRole; 
    private ArrayList<String> modifyassignedPermission; 
//getters and setters 

행동 D 탭

public class ASPadminModify extends ActionSupport implements ServletRequestAware, ModelDriven<ASPAdminModifyBean> { 



    private AdminASPService aspService = new AdminASPService(); 
    private GetRolePermissionListInt[] roleVO; 
    private HttpServletRequest request = ServletActionContext.getRequest(); 
    private HttpServletResponse response = ServletActionContext.getResponse(); 
    private ASPAdminModifyBean modify = new ASPAdminModifyBean(); 
    GetRolePermissionListInt role; 

    //getters and setters for the above 


    public String grantRolesPermissions(){ 
     System.out.println("enter the grant roles and permissions"); 
     String tab2="modify"; 
     boolean id; 
     HttpServletRequest request=getRequest(); 
     HttpSession session=request.getSession(); 
     session.setAttribute("tabs",tab2); 
     role=aspService.getGrantedRolesAndPermissions(modify); 
     System.out.println("assigned roles===================>"+role.getAssignedRoles()); 
     modify.setAspmodifyassignedRole(role.getAssignedRoles()); 
     modify.setAspmodifyassignedPermission(role.getAssignedPermissions()); 
     modify.setCreatedby(role.getCreatedBy()); 
     modify.setCreateddate(role.getCreatedDate()); 
     modify.setUpdatedby(role.getUpdatedBy()); 
     modify.setUpdateddate(role.getUpdatedDate()); 
     modify.setUsername(role.getUserName()); 
     modify.setModifyftid(role.getFtid()); 
     System.out.println("assigned permissions==============>"+role.getAssignedPermissions()); 
     System.out.println("updated by=================>"+role.getUpdatedBy()); 
     System.out.println("update date=================>"+role.getUpdatedDate()); 
     System.out.println("created by===================>"+role.getCreatedBy()); 
     System.out.println("created date=====================>"+role.getCreatedDate()); 
     System.out.println("ftid=============================>"+role.getFtid()); 
     System.out.println("user name===========================>"+role.getUserName()); 
     System.out.println("ftid=============>"+role.getFtid()); 
     if(role!=null){ 
      return SUCCESS; 
     }else{ 
      return ERROR; 
     } 

    } 


    @Override 
    public void setServletRequest(HttpServletRequest arg0) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public ASPAdminModifyBean getModel() { 
     // TODO Auto-generated method stub 
     return modify; 
    } 

} 
+0

정말 많은 코드가 있습니다. 문제와 관련된 부분 만 여기에 유지하면서 소음 (모든 쓸모없는 요소 (예 : 양식 앞뒤에있는 모든 요소 또는 테이블 머리글 등)에서 정리하십시오. –

+0

@AndreaLigios 나는 – user2841408

+0

을 청소했다. 모든 style = "", align = "", class = "",

을 제거하면 더 많은 정보를 정리할 수 있습니다. 관련 액션 코드 (예 : availableRole의 정의 및 그 초기화) –

답변

0

음, 코드는 다시 성장한다 :

시작으로 :

  • 이 (두 콩에, 및 getter 및 setter를 다시 생성) 목록에 ArrayList를 선언을 변경;

그리고 그것은 여전히 ​​작동하지 않는 경우 (내부 코드로, 자신의 세터)는 using Struts2 Aware s interfaces에 의해 요청, 응답 및 세션을 얻을 방법을 변경

  • , 더 나은 조금 무엇을 설명 "값이 Action으로 전달되지 않음"을 의미합니까? 그리고 인터셉터 스택 구성 게시를 고려하십시오.

    희망 ...