2012-07-03 70 views
0

變爲空值從ajax調用實際得到空值FirstList.java)...第一個列表加載正確。 需要幫助,我是struts2和hibernate的新手。從ajax調用

StudentRegistration.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<%@taglib uri="/struts-tags" prefix="s"%> 
<%@taglib uri="/struts-dojo-tags" prefix="sx"%> 

<html> 
<head> 
    <sx:head /> 
    <title>Student Registration</title> 
</head> 

<script> 
function show_details() { 
dojo.event.topic.publish("show_detail"); 
} 
</script> 

<body> 
    <s:form id="form1" name="form1" action="StudentRegister" method="post" enctype="multipart/form-data" theme="simple"> 
    <s:hidden name="id" /> 
    <table border="0"> 
    ... 

    <tr> 
    <td><s:label value="Course " for="course" /></td> 

    <td><s:select name="course" list="courseList" onchange="javascript:show_details();return false;" /></td> 
    </tr> 
    <tr> 
    <td colspan="2"><s:url id="durl" action="secload" /><sx:div showLoadingText="" id="details" href="%{durl}" listenTopics="show_detail" formId="form1" ></sx:div></td> 
    </tr> 

    <tr> 
    <td align="center" colspan="2"><s:submit /></td> 
    </tr> 
    </table> 
    </s:form> 
</body> 
</html> 

Detail.jsp

<%@taglib uri="/struts-tags" prefix="s"%> 
<%@taglib uri="/struts-dojo-tags" prefix="sx"%> 
<table border="0" width=100%> 
<s:if test="branchList != null"> 
<tr><td><s:select name="branch" list="branchList" label="Branch"></s:select></td></tr></s:if> 
<s:if test="semList != null"> 
<tr><td><s:select name="sem" list="semList" label="Semester" /></td></tr></s:if> 
</table> 

FirstList.java

package bharat; 

    public class FirstList extends ActionSupport { 
     private String course; 
     private Map<Integer,Integer> semList=null; 
     private Map<String, String> branchList=null; 

     public String execute() throws Exception 
     { 
      populateTwo(getCourse()); 
      return SUCCESS; 
     } 

     public void populateTwo(String id1) 
     { 
        // Get null value for id1 
      System.out.println (id1); 

      if(id1!=null&&!id1.equals("")) 
      { 
      semList=new HashMap<Integer,Integer>(); 
      branchList=new HashMap<String,String>(); 
      if (id1.equalsIgnoreCase("B.Tech.")||id1.equalsIgnoreCase("M.Tech.")) { 
       branchList.put("CSE","CSE"); 
       branchList.put("ECE","ECE"); 
       branchList.put("MAE","MAE"); 
       branchList.put("CHE","CHE"); 
       branchList.put("CVE","CVE"); 
       branchList.put("IT","IT"); 
       } else if (id1.equalsIgnoreCase("MCA")) { 
        branchList.put("CS","CS"); 
        branchList.put("EC","EC"); 
        branchList.put("MA","MA"); 
        branchList.put("CIV","CIV"); 
        branchList.put("IT","IT"); 
       } 
       else{branchList.put("None","None");} 
      if (id1.equalsIgnoreCase("B.Tech.")||id1.equalsIgnoreCase("Bio.Tech.")) { 
      semList.put(1,1); 
      semList.put(2,2); 
      semList.put(3,3); 
      semList.put(4,4); 
      semList.put(5,5); 
      semList.put(6,6); 
      semList.put(7,7); 
      semList.put(8,8); 
      setSemList(semList); 
      } else if (id1.equalsIgnoreCase("M.Tech.")) { 
       semList.put(1,1); 
       semList.put(2,2); 
       semList.put(3,3); 
       semList.put(4,4); 
      } else { 
       semList.put(1,1); 
       semList.put(2,2); 
       semList.put(3,3); 
       semList.put(4,4); 
       semList.put(5,5); 
       semList.put(6,6); 
      } 
      } 
     } 

     public String getCourse() { 
      return course; 
     } 
     public void setCourse(String course) { 
      this.course = course; 
     } 
     public Map<Integer,Integer> getSemList() { 
      return (this.semList); 
     } 
     public void setSemList(Map<Integer,Integer> semList) { 
      this.semList = semList; 
     } 
     public void setBranchList(Map<String, String> branchList) { 
      this.branchList = branchList; 
     } 

     public Map<String, String> getBranchList() { 
      return branchList; 
     } 
    } 

struts.xml中

<!DOCTYPE struts PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
"http://struts.apache.org/dtds/struts-2.0.dtd"> 

<struts> 
    <package name="default" extends="hibernate-default"> 
    ... 
    <action name="StudentRegister" class="bharat.RegistrationAction"> 
      <interceptor-ref name="defaultStackHibernate"> 
     <param name="fileUpload.allowedTypes">image/png,image/gif,image/jpeg</param> 
     </interceptor-ref> 
     <result name="input">/jsp/StudentRegistration.jsp</result> 
     <result name="success">/jsp/success2.jsp</result> 
    </action> 
    **<action name="linkStudentRegister" method="populateOne" class="bharat.RegistrationAction"> 
     <result name="success">/jsp/StudentRegistration.jsp</result> 
    </action> 
    <action name="secload" class="bharat.FirstList"> 
     <result name="success">/jsp/Detail.jsp</result> 
    </action>** 
    </package> 
</struts> 

的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 
    <display-name>CourseRegistrationModule</display-name> 
    <filter> 
     <filter-name>struts2</filter-name> 
     <filter-class> 
      org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>struts2</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

RegistrationAction.java

package bharat; 

public class RegistrationAction extends ActionSupport implements ModelDriven<Register>,ServletRequestAware { 

    private Register register = new Register(); 
    private RegisterDAO registerDAO = new RegisterDAOImpl(); 
    private HttpServletRequest servletRequest; 
    private Map<String,String> courseList= null; 

    public String populateOne() 
    { 
     System.out.println ("populateone"); 
     courseList=new HashMap<String,String>(); 
     courseList.put("B.Tech.","B.Tech."); 
     courseList.put("M.Tech.","M.Tech."); 
     courseList.put("MCA","MCA"); 
     courseList.put("Bio.Tech.","Bio.Tech."); 
     return SUCCESS; 
    } 


    public Map<String,String> getCourseList() { 
     return (this.courseList); 
    } 
    public void setCourseList(Map<String,String> courseList) { 
     this.courseList = courseList; 
    } 

    @Override 
    public Register getModel() { 
     //TODO 
     return register; 
    } 
    @Override 
    public void setServletRequest(HttpServletRequest servletRequest) { 
     this.servletRequest = servletRequest; 
    } 

    public String execute() { 

     ... 
     return SUCCESS; 
    } 

    public Register getRegister() { 
     return register; 
    } 

    public void setRegister(Register register) { 
     this.register = register; 
    } 
} 
+0

什麼是在請求被髮送?請求是什麼?什麼是Dojo「show_detail」主題? –

+0

選擇的課程是在StudentRegistration.jsp中的請求中發送的。因爲我在課程選擇框中使用了onchange事件並且具有與「listenTopic」屬性相對應的dojo div。 – Bharat

+0

我*認爲*我看到了邏輯 - 如果您沒有讓人們首先閱讀並理解那麼多的代碼和配置,那麼它就會變得更加容易。 *方式*太多無關的代碼;你正在詢問一個請求。 –

回答

0

終於,我明白了正確的改變隱藏標籤ID1的名字....