【问题标题】:I am not able to get the value form JSP page to Controller Class on Submit我无法在提交时将值从 JSP 页面获取到控制器类
【发布时间】:2015-07-24 22:32:57
【问题描述】:

此代码是在 Liferay 6.1 平台上编写的。

描述:我有一个名为“商店名称”的下拉菜单。我将从下拉列表中选择任何一个值并将该值传递给javascript函数“getStoreDetails”onchange。该函数发送的值将在 javascript 数组“lNames”中检查,如果该数组中存在值,则将获取索引并使用索引从“fNames”数组获取值并添加到跨度类“FirstName”。我能够做到这一点,并且代码运行良好。

问题:我无法从 jsp 文件中获取 FirstName 值到 submitIssue 方法的控制器类。

这是我的控制器类

public class IssueController{

public String handleRenderRequest(RenderRequest request, RenderResponse response, Model model) throws Exception {
HttpServletRequest httpRequest = PortalUtil.getOriginalServletRequest(PortalUtil.getHttpServletRequest(request));

User user = PortalUtil.getUser(httpRequest);

model.addAttribute("my_user", user);

/*Some code goes here to set user attributes like department and organization using model object */

return "issue";    /*This is my jsp file mentioned below*/

}

@ActionMapping
public void submitIssue(@ModelAttribute IssueForm submitIssueForm, ActionRequest request, ActionResponse response) throws PortalException, SystemException, IOException, PortletException {

       String First_Name=request.getParameter("FirstName");
       System.out.println("First Name while submitting is :\t"+First_Name);

       /* here i am not able to obtain value of First_Name */
   }

}   

下面的代码是我的 issue.jsp 文件

   <div class="large-4 medium-8 small-12 columns">
                Store Name <select
                    class="no-highlight" id="StoreName_dropdown"
                    name="storeName"
                    onchange="getStoreDetails(this.value);"

                    <%

                    String stores[] = new String[] {"1021","1022","1023","1024","1025","1026","1027","1028","1029","1030"};

                    for(int i=0;i<stores.length;i++){%>

                    <option value="<%=stores[i]%>"><%=stores[i]%></option>

                    <%}%>

                </select>
  </div>
  <%
     String fNames[] = new String[] {"John1021","wilson1022","test1023","test1024","test1025","test1026","test1027","test1028","test1029","test1030"};
        StringBuffer bufferfNames = new StringBuffer();
        bufferfNames.append("[");
        for(int i=0; i<fNames.length; i++){

            bufferfNames.append("\"").append(fNames[i]).append("\"");
                if(i+1 < fNames.length){
                    bufferfNames.append(",");
                }
        }
        bufferfNames.append("]");
        String First_Name=bufferfNames.toString();

        String lNames[] = new String[] {"1021","1022","1023","1024","1025","1026","1027","1028","1029","1030"}; 

        StringBuffer bufferlNames = new StringBuffer();
        bufferlNames.append("[");
        for(int i=0; i<lNames.length; i++){

            bufferlNames.append("\"").append(lNames[i]).append("\"");
                if(i+1 < lNames.length){
                    bufferlNames.append(",");
                }
        }
        bufferlNames.append("]");
        String Last_Name=bufferlNames.toString();
  %>
  <div class="row ">
            <div class="large-3 medium-4 columns">
                <span class="firstName">First Name : &nbsp;&nbsp; <span
                    class="hide-for-medium-up"><b>"dynamically name added"</b></span></span>
                <div class="hide-for-small" id="FirstName" >
                    <b>"dynamically name added"</b>
                </div>
 </div>
 </div>

 <div class="row ">
        <div class="large-2 medium-3 columns">
                <button class="submitIssue submit_button"
                    id="submitIssue" tabIndex=9>
                    Submit
                </button>
        </div>
</div>

 <script>
 function getStoreDetails(store) {

    var fNames=<%=First_Name%>;
    var lNames=<%=Last_Name%>;
    var index;

    index=lNames.indexOf(store);

    if (index > -1) {
        document.getElementById("FirstName").innerHTML = fNames[index];  
    }
   else{
       alert("Store is not present in lNames !!");
   }
 }
 </script>

我在单独文件 submitIssue.js 中的 javascript 程序

$( document ).ready(function() {
       $('button.submitIssue').click(function(){
       $('#submitIssueForm').submit();
    });
});

谁能建议我得到这个值。如果您不理解我的问题陈述,请发表评论。提前致谢。

【问题讨论】:

  • 我找不到您将名字作为请求参数的位置,也找不到提交代码(或按钮)

标签: java javascript jquery jsp liferay-6


【解决方案1】:

您能看到在您的 jsp 中打印的“FirstName”吗?如果是,你需要在输入标签中传递这个值,这样你就可以期望这个值进入你的控制器。希望这会有所帮助!

【讨论】:

  • 每次更改下拉菜单中的选项时都会更改名字值。所以当我尝试打印它时,它会打印“null”
  • 对您的 javascript 变量使用 toString 方法。例如 - lNames.toString().indexOf(store.toString)
  • 是的,我可以在我的 JSP 中看到该值。如果我按照您所说的去做,它将是由具有多个名称的数组 lNames 形成的字符串。像 String lNames[]={"Name1","Name2","Name3","Name4","Name5"........"NameN"};我将使用“索引”在 JSP 中仅显示一个名称,因此无论打印什么,我都必须将其读入 Controller 类。
猜你喜欢
  • 2016-02-12
  • 2013-11-23
  • 1970-01-01
  • 2023-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多