2011-12-05 17 views
5

Trong jsp tôi, tôi có một số lĩnh vực như thế này:Struts 1: Đặt giá trị của một jsp vào hình thức mà sử dụng một danh sách java

<html:text property="field[0]" value="${fieldValue}" indexed="true"> 
<html:text property="field[1]" value="${fieldValue}" indexed="true"> 
<html:text property="field[2]" value="${fieldValue}" indexed="true"> 
<html:text property="field[3]" value="${fieldValue}" indexed="true"> 

Và trong hình thức của tôi, tôi có một java.util.List mà tôi cần điền từ các trường trên cùng:

private List<Double> field = new ArrayList<Double>(); 

public final List<Double> getField() { 
    return field; 
} 
public final void setField(final List<Double> valeur) { 
    this.field = valeur; 
} 

Vấn đề là danh sách không được điền. Bất kỳ ý tưởng nào ??? Cảm ơn !!

Trả lời

1

Đơn giản chỉ cần làm

<html:text property="field[0]" value="${fieldValue}" indexed="true"> 
<html:text property="field[1]" value="${fieldValue}" indexed="true"> 
<html:text property="field[2]" value="${fieldValue}" indexed="true"> 
<html:text property="field[3]" value="${fieldValue}" indexed="true"> 

Và theo hình thức này:

private String[] field = new String[0]; 

public final String getField(int index) { 
    return field[index]; 
} 
public final void setField(int index, String value) { 
    //Copy last values of the array into a temporary array, then add the new value 
    String[tmp] = new String[index + 1]; 
    for(int i=0; i<field.length; i++){ 
     tmp[i] = field[i]; 
    } 
    tmp[index] = value; 
    this.field = tmp; 
} 
+0

Có vấn đề về hiệu suất. Để thêm giá trị đơn, nó phải lặp lại tất cả các trường và sau đó tạo một mảng chuỗi mới. – Naved

+0

Nhưng cần phải xác thực và hiển thị lớp lỗi trên trường liên quan –

1

Theo kiến ​​thức của tôi,
1. Nếu đó là struts 1, trường "$" đô la không hoạt động để lấy các giá trị. 2. Bạn không nên xác định các chỉ số trong tên thuộc tính, nhưng nó sẽ được tự động được sử dụng bởi người dịch thẻ và do đó mã của bạn một cái gì đó sẽ trông giống như

<html:text property="field" indexed="true"> 
<html:text property="field" indexed="true"> 
<html:text property="field" indexed="true"> 
<html:text property="field" indexed="true"> 

Tôi hy vọng điều này sẽ giúp bạn giải quyết vấn đề của bạn.

+0

Thanx cho trả lời của bạn. Tôi đã làm điều này và vấn đề không phải từ $. Tại sao tôi muốn sử dụng Danh sách? Đó là để xác nhận, cho rằng nếu trường thứ ba là lỗi, tôi muốn chỉ xem trường này là lỗi và không phải tất cả các trường ... –

+0

Trong ví dụ của tôi, Bạn phải thêm Danh sách. Nhưng bạn không thể cung cấp chỉ mục trong "thuộc tính". – Naved

Các vấn đề liên quan