鍏堢湅涓嬮潰鐨?JSF 欏甸潰錛?/p>
<%...@ page language="Java" pageEncoding="UTF-8"%> <html> <body> 瑕佹敞鎰忕殑鏄紝涓嶈兘鍦?JavaScript 鍑芥暟涓嬌鐢ㄥ涓嬬被浼艱娉曟潵璁塊棶琛ㄥ崟緇勪歡錛?br />
document.formLogin.txtUsername.value; 榪欐槸鍥犱負 JSF 瑙i噴涓婇潰鐨?<h:form id="formForm">...</h:form> 涓孌墊椂浼氱敓鎴愬涓嬩唬鐮侊細 <form id="formLogin" method="post" action="/Project_Blog/login.faces"
<%...@ taglib uri="
<%...@ taglib uri="
<head>
<title>My JSF 'login.jsp' starting page</title>
<script type="text/Javascript">...
function isEmpty() ...{
var username = document.getElementById("formLogin:txtUsername").value;
var password = document.getElementById("formLogin:txtPassword").value;
if(username == "") ...{
alert("緇欒佸瓙杈撶敤鎴峰悕錛?);
document.getElementById("formLogin:txtUsername").focus();
return false;
}
if(password == "") ...{
alert("涓嶈緭瀵嗙爜浣犵櫥褰曚釜閾查摬錛?);
document.getElementById("formLogin:txtPassword").focus();
return false;
}
}
</script>
</head>
<center>
<f:view>
<h:form id="formLogin">
<div id="input">
<h:outputLabel value="鐢ㄦ埛鍚嶏細" />
<h:inputText value="#{LoginManager.username}" id="txtUsername"
styleClass="formText" />
<br>
<h:outputLabel value="顫插瘑鐮侊細" />
<h:inputSecret value="#{LoginManager.password}" id="txtPassword"
styleClass="formText" />
</div>
<div id="submit">
<h:commandButton value="鎻愪氦" action="#{LoginManager.check}"
onclick="return isEmpty();" styleClass="formButton" />
<h:commandButton value="閲嶇疆" type="button"
onclick="Javascript:document.getElementById('formLogin').reset();
document.getElementById('formLogin:txtUsername').focus();"
styleClass="formButton" />
</div>
</h:form>
</f:view>
</center>
</body>
</html>
榪欎釜欏甸潰浣跨敤 JavaScript 鏉ョ‘璁ょ櫥褰曟椂鐢ㄦ埛鍚嶅拰瀵嗙爜鏄惁涓虹┖錛岃〃鍗曞悕涓?formLogin錛屼袱涓緭鍏ョ粍浠跺悕涓?txtUsername 鍜?txtPassword錛屽綋鍗曞嚮鎸夐挳鏃訛紝灝嗚皟鐢?JavaScript 鍑芥暟 isEmpty()錛屾牴鎹潯浠跺垽鏂樉紺哄璇濇鎴栨槸鎻愪氦琛ㄥ崟銆?/p>
鑰屽簲浣跨敤錛?br />
document.getElementById("formLogin:txtUsername").value;
鎴栬咃細
document.forms.formLogin["formLogin:txtUsername"].value;
enctype="application/x-www-form-urlencoded">
<div id="input">
<label>鐢ㄦ埛鍚嶏細</label>
<input id="formLogin:txtUsername" type="text"
name="formLogin:txtUsername" class="formText" />
<br>
<label>顫插瘑鐮侊細</label>
<input id="formLogin:txtPassword" type="password"
name="formLogin:txtPassword" value="" class="formText" />
</div>
<div id="submit">
<input type="submit" name="formLogin:_id2" value="鎻愪氦"
onclick="return isEmpty();" class="formButton" />
<input type="button" name="formLogin:_id3" value="閲嶇疆"
onclick="Javascript:document.getElementById('formLogin').reset();
document.getElementById('formLogin:txtUsername').focus();" class="formButton" />
</div>
<input type="hidden" name="formLogin" value="formLogin" />
</form>
JSF 浜х敓鐨勬墍鏈夎〃鍗曟帶浠墮兘鏈夌鍚?formName:componentName 鏍煎紡鐨勫悕縐幫紝榪欓噷鐨?formName 琛ㄧず鎺т歡鐨勮〃鍗曠殑鍚嶇О錛岃?componentName 琛ㄧず緇勪歡鍚嶇О銆傚鏋滄病鏈夋寚瀹?id 灞炴э紝鍒?JSF 妗嗘灦浼氳嚜鍔ㄥ垱寤烘爣璇嗙錛屽氨璞′笂闈㈢殑 HTML 鐗囨涓殑鎸夐挳涓鏍楓傚洜姝わ紝瑕佽闂笂闈㈢殑鐢ㄦ埛鍚嶅瓧孌碉紝蹇呴』浣跨敤涓嬪垪鏂規硶錛?br />
document.getElementById("formLogin:txtUsername").value;
]]>
1.杞崲鏃墮棿鏃訛紝蹇呴』鍔犱笂鏃跺尯GMT+8錛屼笉鐒剁浉宸竴澶┿?
<f:convertDateTime timeZone="GMT+8" dateStyle="long" type="date"/>
2.<h:outputText value="#{productBean.view}"/>褰搗iew涓虹┖鏃訛紝涓嶆樉紺恒?/div>
3.
actionListener鍦ㄦ墽琛屼簡action涔嬪悗鍐嶆墽琛屻?/div>
鍙互娌℃湁action錛岃屽彧鏈塧ctionListener銆?/div>
action鍙互璁劇疆鎴愪竴涓柟娉曪紝涔熷彲浠ヨ緗負涓涓鑸敤渚嬬殑<from-outcome>
澶氫釜欏甸潰濡傛灉浣跨敤浜嗗悓涓涓猺equest綰х殑backingBean錛屽彲鑳藉鑷翠竴浜涜帿鍚嶅叾濡欑殑闂銆傚錛氫笉鑳芥墽琛屾寚瀹氱殑Action.
4.瀵逛簬鍚憁anaged-bean鐨勫睘鎬ф敞鍏equest鍙傛暟鏃訛紝鍏?lt;managed-bean-scope>蹇呴』涓簉equest,<property-class>涓嶈涓哄肩被鍨?濡傛灉鏄肩被鍨嬶紝褰撴寚瀹氱殑request鍙傛暟涓虹┖鏃訛紝
http://www.kpwang.com/娉ㄥ叆鏃朵細鍑洪敊錛屽洜涓轟竴涓┖瀵硅薄濡侷nteger null涓嶈兘鑷姩杞崲涓轟竴涓肩被鍨嬪int鐨?)銆傚涓嬫墍紺猴細
<managed-bean>
<managed-bean-name>productBean</managed-bean-name> <managed-bean-class>demo.view.ProductBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> <managed-property> <property-name>id</property-name> <property-class>java.lang.Integer</property-class> <value>#{param.id}</value> </managed-property> <managed-property> <property-name>view</property-name> <property-class>java.lang.Boolean</property-class> <value>#{param.view}</value> </managed-property> </managed-bean> 5.瀵逛簬浠ヤ笅鏌ユ壘鏄寜閮ㄤ歡id鏌ユ壘鐨勶紝涓嶆槸鎸夊弬鏁板悕縐版煡鎵劇殑銆?/div>
UIParameter uip =(UIParameter)event.getComponent().findComponent("productId");
//event鏄痑ctionListener涓殑鍙傛暟ActionEvent綾誨瀷銆?/div>
鎵浠?/div>
<h:commandLink action="view">
<f:param id="productId" name="id" value="#{product.id}"/>
</h:commandLink>
<f:prarm>蹇呴』璁劇疆id
Map params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
String someValue = params.get("id"); 榪欎釜鏄寜鍙傛暟鍚嶇О鏌ユ壘鐨? JSF鏍囩鍙槸JSF緇勪歡鐨勫琛o紝Id灝辨槸緇勪歡鐨勫懡鍚嶏紝涓嶥elphi鐨勭粍浠跺悕鏄竴鏍風殑錛屼箣鎵浠ョ敤Id涓嶇敤Name,鏄負浜嗕笌HTML涓殑涓鑷達紙HTML input緇勪歡 id鏄叾鏍囪瘑錛宯ame鏄叾浼犻掑埌鏈嶅姟鍣ㄧ鐨勫弬鏁板悕銆傦級錛屾墍浠ユ煡鎵綣SF緇勪歡褰撶劧鐢↖d浜嗐?/div>
6.褰撲竴涓〉闈㈢殑BackingBean鐨勬瀯閫犲嚱鏁頒腑榪愯鍑洪敊鎴栧睘鎬ф敞鍏ュ嚭閿欐椂錛岃〃闈笂浼氭姤璁$畻琛ㄨ揪寮忛敊璇紝鍘熷洜鏄繖涓狟ackingBean娌℃湁鏋勯犲嚭鏉ワ紝涓虹┖錛屽綋鐒跺湪Reader欏甸潰鏃朵細娌℃湁鍔炴硶姹傜浉鍏崇殑琛ㄨ揪寮忕殑鍊箋?/div>
7.request綰х殑BackingBean鍦ㄤ粠瀹㈡埛绔埌鏈嶅姟绔竴嬈¤姹傚悗錛屽氨琚攢姣併傚湪榪欐璇鋒眰涓紝鍙細琚垱寤轟竴嬈°傚湪Forward涔嬪墠鍒涘緩鐨凚ackingBean鍦‵orward涔嬪悗錛屽茍涓嶄細琚啀嬈″垱寤恒?/div>
8.鍒ゆ柇鏄惁鏄洖浼犮?/div>
protected boolean isPostBack()
{ if (FacesContext.getCurrentInstance().getRenderResponse()) return false; else return true; } 9.<f:view>閲屼嬌鐢?lt;jsp:include>鏃剁殑娉ㄦ剰浜嬮」
鎰熻阿 tdwebber 鎻愪緵銆?/div> 1) When using a jsp:include within the f:view tags, must include f:subview in the included file (or around the jsp:include tag).椴查箯緗?/font> 褰撳湪f:view涓嬌鐢?strong>jsp:include鏍囩鎻掑叆涓涓枃浠舵椂錛?/p> http://www.kpwang.com/蹇呴』鐢╢:subview鎶?strong>jsp:include鍖呰搗鏉?
2) In the include file, cannot have any HTML. All HTML tags must be wrapped in f:verbatim tags. 鍦ㄨ鎻掑叆鐨勬枃浠朵腑錛屼笉鑳芥湁浠諱綍鐨刪tml鏍囩錛屽鏋滃繀欏諱嬌鐢╤tml鏍囩錛屽繀欏葷敤f:verbatim灝嗗畠鍖呰搗鏉ャ?/p> 3) Within main f:view tags however, it is not necessary to wrap everything in f:verbatim tags (it´s not bad either). Just HTML that appears as children to other JSF components (i.e. t:newspaperTable). 鍦ㄤ富f:view涓紝娌℃湁蹇呰鐢╢:verbatim灝唄tml鏍囩鍖呰搗鏉ワ紙褰撶劧鍖呰搗鏉ヤ篃鍙互錛夈傚綋html鏍囩鍑虹幇鍦ㄥ瓙瑙嗗浘鎴栧叾瀹僇SF閮ㄤ歡鏍囩涓椂錛屽氨瑕佺敤f:verbatim鍖呰搗鏉ャ?/p> 10.JSF鐨勭紦瀛樿兘鍔涘ソ鍍忓お寮轟簡錛屾湁鏃跺仠姝簡鏈嶅姟鍣紝鏀瑰姩浜?strong>jsp欏甸潰涓殑jsf鏍囩錛屽啀鍚姩鏈嶅姟鍣紝浣嗗埌璇ラ〉闈㈡椂錛岃繕鏄師鏉ョ殑鍐呭錛岄渶瑕佹墜鍔ㄥ埛鏂頒竴涓嬨傛湁鏃墮渶瑕佸厛杞埌鍒殑欏甸潰錛屽啀鍥炴潵鍒鋒柊涓涓嬫墠鑳界湅鍒版洿鏂扮殑鍐呭銆?/p> |