5
<jsp:setproperty name="Test" property="*">

これは何を意味するのでしょうか?

「指定されたJavaBeanインスタンスにプロパティを設定する」という定義があることは知っています。では、javaBean テストでもプロパティを設定するのは何ですか?

4

2 に答える 2

21

完全な例を次に示します。

Form.html

<form method="POST" action="processForm.jsp">
    <input name="name"/>
    <input name="username"/>          
    <input name="jobTitle"/>
    <input name="city"/>
<input type="submit">   

フォームはユーザーからの入力を収集し、それを processForm.jsp ページにポストします。

processForm.jsp

<%@ page import = "com.Employee"%>

...

<jsp:useBean id="employee" type="com.Person" class="com.Employee">
    <jsp:setProperty name="employee" property="*"/>
</jsp:useBean>

このアクションは、 com.Employee参照によって参照されるタイプcom.Person<jsp:useBean>のオブジェクトを作成します。

この<jsp:setProperty>アクションは、各入力要素の名前をEmployeeオブジェクトの getter メソッドの名前と一致させます。

例:とname一致しgetName、 とjobTitle一致しgetJobTitleます。以下は従業員クラスです。Personインターフェイスは含めていません。

従業員.java

public class Employee implements Person{
   
    private String name;
    private String username;
    private String jobTitle;
    private String city;
   
    public String getJobTitle() {
           return jobTitle;
   }
    public void setJobTitle(String jobTitle) {
           this.jobTitle = jobTitle;
   }
    public String getName() {
           return name;
   }
    public void setName(String name) {
           this.name = name;
   }
    public String getCity() {
           return city;
   }
    public void setCity(String city) {
           this.city = city;
   }
    public String getUsername() {
           return username ;
   }
    public void setUsername(String username) {
           this.username = username;
   }        
}

この標準アクションに関する注意事項。

  1. 入力要素の名前は、ターゲット オブジェクトの getter メソッドと一致する必要があります。名前 --> getName など
  2. タイプに注意してください。マップまたは配列に一致させることはできません
  3. プロパティがオブジェクトの場合も同様です。個別に処理する必要があります。
  4. Employee のプロパティの型が int で、フォームに入力された値が int に変換できない場合は、java.lang.NumberFormatException がスローされます。
于 2013-10-09T15:57:31.340 に答える
6

アスタリスク (*) は、アクションのプロパティ属性値として使用されます。これは、ページに送信されたリクエスト パラメータと一致する名前を持つすべての Bean プロパティが自動的に設定されることを意味します。

于 2013-10-09T14:19:48.313 に答える