sturts 1とstruts 2におけるラベルの解釈
13449 ワード
現在struts 2が広く使用されているため、struts 2に関するラベルについて説明します
1.s:select
例:
次のようになります.
上記のコードの意味は、次の文に等しい.
ここで、nameに対応する属性値は、このラベルがあるページ(現在のjspページ)をジャンプするactionの属性であり、setter/getterメソッドがあり、key=「pager.pageSize」は、このラベル(s:select)にジャンプすることを示す(address.do?method=initというページの接続をクリックすると、s:selectがあるページにジャンプし、addressに対応するactionがここで指すaction)(struts.xmlファイルのaddressに対応するactionクラス)にpagerプロパティがあるか、親クラスにgetterメソッドとsetterメソッドがあります.このpagerプロパティが属するオブジェクトに対応するクラスにはpageSizeプロパティがあり、getterメソッドとsetterメソッドがあります.List="pager.pageSizeIndexs"は、このページにジャンプするactionにgetPagerメソッドがあり、このpagerオブジェクトのクラスにgetPageSizeIndexsメソッドがあり、このメソッドはlist/set/collectionまたは他のコンテナを返す
2.s:iterator
例:
ここでvalue属性値の解釈:このjspページにジャンプするaction(1で既に述べた)にはgetPagerメソッドがあり、返される値はgetreslutListメソッドがあり、返される値はコンテナクラス(list、setなどのクラス)である必要があるクラスのインスタンスである.
3.s:property
例:
ここでは反復器(iterator)を使用してvalue=「pager.resultList」が返すコンテナクラスのインスタンスの結果をループして取り出します.この結果はオブジェクトであり、このオブジェクトには多くの属性があり、このAddressオブジェクトに多くの属性と方法があると仮定します.
これは、このAddressオブジェクトからaddressメソッドを取り出す、すなわち、このオブジェクトのgetAddress()メソッドを呼び出し、取得した値をここに表示することを意味する.
4.s:actionerror
例:
Actionに保存されているグローバルエラーを入力します.Actionに保存されているグローバルエラーコードは次のとおりです.
jspファイルにs:actionerrorラベルがある場合、このjspファイルのactionの対応する関数にジャンプするにはsaveActionErrorメソッドが使用されます.
5.s:actionmessage
例:
対応するactionの対応するメソッドの対応する文は、次のとおりです.
解釈を同じくする
6.s:fielderror
エラーメッセージを表示
例:
対応するactionのvalidateメソッドの対応コードは次のとおりです.
ラベル内のname のパラメータnameは、メソッドaddFieldErrorメソッドの最初のパラメータnameに対応する
struts 1ラベル解釈
1、bean:message
例:
そのうちaddress.page.positionは、リソースファイルのkeyに対応する属性値です.
2、html:errors
例:
対応するjavaコードは次のとおりです.
3、logic:present
使用方法:if(request.getAttribute("user"!=null))に相当します.
例:
4、logic:iterate
例:
1.s:select
例:
<s:form action="address!list.do" method="post" name="form1">
<TABLE border="0" width="100%" class="pager">
<TR>
<TD align="left">
<s:text name="pager.pageSize" />
<s:select name="pageSize" key="pager.pageSize"
list="pager.pageSizeIndexs" value="pager.pageSize"
onchange="document.all.pageNo.value='1';document.all.form1.submit();" />
</TD>
<TD align="center">
<s:text name="pager.rowCount" />
<s:property value="pager.rowCount" />
</TD>
<TD align="right">
<a
href="javascript:document.all.pageNo.value='<s:property value="pager.firstPageNo" />';document.all.form1.submit();"><s:text
name="pager.firstPageNo" /> </a>
<a
href="javascript:document.all.pageNo.value='<s:property value="pager.prePageNo" />';document.all.form1.submit();"><s:text
name="pager.prePageNo" /> </a>
<a
href="javascript:document.all.pageNo.value='<s:property value="pager.nextPageNo" />';document.all.form1.submit();"><s:text
name="pager.nextPageNo" /> </a>
<a
href="javascript:document.all.pageNo.value='<s:property value="pager.lastPageNo" />';document.all.form1.submit();"><s:text
name="pager.lastPageNo" /> </a>
<s:select name="pageNo" list="pager.pageNoIndexs"
value="pager.pageNo" onchange="document.all.form1.submit();" />
</TD>
<TD width="20"></TD>
</TR>
</TABLE>
</s:form>
次のようになります.
<s:select name="pageSize" key="pager.pageSize"
list="pager.pageSizeIndexs" value="pager.pageSize"
onchange="document.all.pageNo.value='1';document.all.form1.submit();" />
上記のコードの意味は、次の文に等しい.
<select name="pageSize">
<option value="pager.pageSize1">pager.pageSize1</option>
<option value="pager.pageSize2">pager.pageSize2</option>
<option value="pager.pageSize3">pager.pageSize3</option>
<option value="pager.pageSize4">pager.pageSize4</option>
</select>
ここで、nameに対応する属性値は、このラベルがあるページ(現在のjspページ)をジャンプするactionの属性であり、setter/getterメソッドがあり、key=「pager.pageSize」は、このラベル(s:select)にジャンプすることを示す(address.do?method=initというページの接続をクリックすると、s:selectがあるページにジャンプし、addressに対応するactionがここで指すaction)(struts.xmlファイルのaddressに対応するactionクラス)にpagerプロパティがあるか、親クラスにgetterメソッドとsetterメソッドがあります.このpagerプロパティが属するオブジェクトに対応するクラスにはpageSizeプロパティがあり、getterメソッドとsetterメソッドがあります.List="pager.pageSizeIndexs"は、このページにジャンプするactionにgetPagerメソッドがあり、このpagerオブジェクトのクラスにgetPageSizeIndexsメソッドがあり、このメソッドはlist/set/collectionまたは他のコンテナを返す
2.s:iterator
例:
<s:iterator value="pager.resultList">
<TR>
<TD>
<s:property value="name" />
</TD>
<TD>
<s:property value="sex" />
</TD>
<TD>
<s:property value="mobile" />
</TD>
<TD>
<s:property value="email" />
</TD>
<TD>
<s:property value="qq" />
</TD>
<TD>
<s:property value="company" />
</TD>
<TD>
<s:property value="address" />
</TD>
<TD>
<s:property value="postcode" />
</TD>
<TD>
<a href='address!edit.do?id=<s:property value="id"/>'><s:text
name="button.edit" /> </a>
<a href="address!delete.do?id=<s:property value="id"/>"><s:text
name="button.delete" /> </a>
</TD>
</TR>
</s:iterator>
ここでvalue属性値の解釈:このjspページにジャンプするaction(1で既に述べた)にはgetPagerメソッドがあり、返される値はgetreslutListメソッドがあり、返される値はコンテナクラス(list、setなどのクラス)である必要があるクラスのインスタンスである.
3.s:property
例:
<s:iterator value="pager.resultList">
<TR>
<TD>
<s:property value="name" />
</TD>
<TD>
<s:property value="sex" />
</TD>
<TD>
<s:property value="mobile" />
</TD>
<TD>
<s:property value="email" />
</TD>
<TD>
<s:property value="qq" />
</TD>
<TD>
<s:property value="company" />
</TD>
<TD>
<s:property value="address" />
</TD>
<TD>
<s:property value="postcode" />
</TD>
<TD>
<a href='address!edit.do?id=<s:property value="id"/>'><s:text
name="button.edit" /> </a>
<a href="address!delete.do?id=<s:property value="id"/>"><s:text
name="button.delete" /> </a>
</TD>
</TR>
</s:iterator>
ここでは反復器(iterator)を使用してvalue=「pager.resultList」が返すコンテナクラスのインスタンスの結果をループして取り出します.この結果はオブジェクトであり、このオブジェクトには多くの属性があり、このAddressオブジェクトに多くの属性と方法があると仮定します.
<s:property value="address" />
これは、このAddressオブジェクトからaddressメソッドを取り出す、すなわち、このオブジェクトのgetAddress()メソッドを呼び出し、取得した値をここに表示することを意味する.
4.s:actionerror
例:
<s:actionerror />
Actionに保存されているグローバルエラーを入力します.Actionに保存されているグローバルエラーコードは次のとおりです.
saveActionError("address.message.edit.notexist");
jspファイルにs:actionerrorラベルがある場合、このjspファイルのactionの対応する関数にジャンプするにはsaveActionErrorメソッドが使用されます.
5.s:actionmessage
例:
<s:actionmessage />
対応するactionの対応するメソッドの対応する文は、次のとおりです.
saveActionMessage("address.message.delete.success");
解釈を同じくする
6.s:fielderror
エラーメッセージを表示
例:
<s:textfield name="name" maxlength="50" />
<s:fielderror>
<s:param>name</s:param>
</s:fielderror>
対応するactionのvalidateメソッドの対応コードは次のとおりです.
if (name == null || name.equals("")) {
addFieldError("name", getText("address.error.name"));
}
ラベル内の
struts 1ラベル解釈
1、bean:message
例:
<bean:message key="address.page.position" />
そのうちaddress.page.positionは、リソースファイルのkeyに対応する属性値です.
2、html:errors
例:
<html:errors property="org.apache.struts.action.GLOBAL_MESSAGE" />
対応するjavaコードは次のとおりです.
ActionMessages messages = new ActionMessages();
AddressForm addressForm = (AddressForm) form;
String username = getUsername(request);
// check if exists
boolean b = addressDAO.isExist(username, addressForm.getName());
if (!b) {
// insert object
Address address = new Address();
address.setUsername(username);
address.setName(addressForm.getName());
address.setSex(addressForm.getSex());
address.setMobile(addressForm.getMobile());
address.setEmail(addressForm.getEmail());
address.setQq(addressForm.getQq());
address.setCompany(addressForm.getCompany());
address.setAddress(addressForm.getAddress());
address.setPostcode(addressForm.getPostcode());
addressDAO.insert(address);
// save messages
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
"address.message.add.success"));
3、logic:present
使用方法:
例:
<logic:present name="addressList">
<logic:iterate id="address" name="addressList" scope="request">
<TR>
<TD>
<bean:write name="address" property="name" scope="page" />
</TD>
<TD>
<bean:write name="address" property="sex" scope="page" />
</TD>
<TD>
<bean:write name="address" property="mobile" scope="page" />
</TD>
<TD>
<bean:write name="address" property="email" scope="page" />
</TD>
<TD>
<bean:write name="address" property="qq" scope="page" />
</TD>
<TD>
<bean:write name="address" property="company" scope="page" />
</TD>
<TD>
<bean:write name="address" property="address" scope="page" />
</TD>
<TD>
<bean:write name="address" property="postcode" scope="page" />
</TD>
<TD>
<a
href='address_edit.do?method=edit&id=<bean:write name="address" property="id" scope="page"/>'><bean:message
key="button.edit" /> </a>
<a
href="address.do?method=delete&id=<bean:write name="address" property="id" scope="page"/>"><bean:message
key="button.delete" /> </a>
</TD>
</TR>
</logic:iterate>
</logic:present>
4、logic:iterate
例:
<logic:present name="addressList">
<logic:iterate id="address" name="addressList" scope="request">
<TR>
<TD>
<bean:write name="address" property="name" scope="page" />
</TD>
<TD>
<bean:write name="address" property="sex" scope="page" />
</TD>
<TD>
<bean:write name="address" property="mobile" scope="page" />
</TD>
<TD>
<bean:write name="address" property="email" scope="page" />
</TD>
<TD>
<bean:write name="address" property="qq" scope="page" />
</TD>
<TD>
<bean:write name="address" property="company" scope="page" />
</TD>
<TD>
<bean:write name="address" property="address" scope="page" />
</TD>
<TD>
<bean:write name="address" property="postcode" scope="page" />
</TD>
<TD>
<a
href='address_edit.do?method=edit&id=<bean:write name="address" property="id" scope="page"/>'><bean:message
key="button.edit" /> </a>
<a
href="address.do?method=delete&id=<bean:write name="address" property="id" scope="page"/>"><bean:message
key="button.delete" /> </a>
</TD>
</TR>
</logic:iterate>
</logic:present>