struts2/jsp 通過form表單方式或者js的方式提交請求,封裝boolean值的問題

來源:互聯網
上載者:User

struts2 通過form表單方式或者js的方式提交請求,封裝boolean值的問題

在jsp上的代碼
<form name="searchform" action="">
 <input id="searchInfo.isHighSearch" name="searchInfo.isHighSearch" value="true"

type="hidden" />

然後通過struts2把參數封裝在vo bean中,bean的類名是SearchInfo.java
該類中有個屬性

 

private boolean isHighSearch;

用myeclipse 6.0自動產生的set/get方法是
對應的set/get方法是

 

 public boolean isHighSearch() {
  return isHighSearch;
 }

 public void setHighSearch(boolean isHighSearch) {
  this.isHighSearch = isHighSearch;
 }

 

然後在action中

SearchInfoBean searchInfoBean = new SearchInfoBean();
System.out.println(searchInfoBean.isHighSearch());

列印出來的值總是false,和表單的值不一致

後來才發現myelipse自動產生的get方法,boolean類型的,自動在屬性名稱加上首碼"is",
上面的例子是isHighSearch,

 

解決的辦法是把屬性名稱字改為highSearch,去掉前面的is,然後就可以正確獲得highSearch的值了

 jsp頁面改為

<input id="searchInfo.highSearch" name="searchInfo.highSearch" value="true" type="hidden" />

 

bean類的屬性改為

private boolean highSearch;

 

 public boolean isHighSearch() {
  return highSearch;
 }

 public void setHighSearch(boolean highSearch) {
  this.highSearch = highSearch;
 }

 

總結出,javabean的屬性命名,如果是boolean類型的屬性,不要命名為is開頭,這樣會避免一些不必要

的錯誤

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.