2011-04-21 39 views

Trả lời

36

Thông báo lỗi có nghĩa là kết quả có tên input chưa được xác định cho hành động của bạn. Kết quả input là kết quả mặc định được Struts trả về khi có vấn đề với việc xác thực các tham số được truyền cho một hành động. Do đó, tôi khuyên bạn nên kiểm tra và đảm bảo rằng các tham số bạn đang chuyển từ biểu mẫu HTML của bạn khớp với các thông số của hành động. Kiểm tra chính tả, loại dữ liệu, v.v.

+1

Ngoài ra, hãy đảm bảo rằng bạn không xác định đầu vào có cùng id nhiều hơn một lần –

+0

Điều này rất hữu ích đối với tôi, tnx !!! – AndreaNobili

-1

Tôi nghĩ bạn phải đặt tên đủ điều kiện theo thẻ class="" trong struts.xml. Sau đó, nó sẽ bắt đầu chuyển hành động của bạn.

1

Một giải pháp là chỉ định kết quả có tên là "đầu vào" cho hành động. Đây là cách tôi giải quyết vấn đề của mình thông qua chú thích.

Trước:

@Action(value = "sendFeedback", results = { 
    @Result(name = SUCCESS,type = "json"), 
    @Result(name = ERROR,type = "json")}) 

Sau:

@Action(value = "sendFeedback", results = { 
    @Result(name = SUCCESS,type = "json"), 
    @Result(name = INPUT, type = "json"), 
    @Result(name = ERROR,type = "json")}) 
3

tôi đã có lỗi tương tự và tôi đã thay đổi tập tin struts.xml tôi

from 
<action name="Registeration101" class="Registeration101"> 
     <result name="success">pages/inputform.jsp</result> 
     <result name="done">pages/quoteSuccess.jsp</result> 
    </action> 
to 
    <action name="Registeration101" class="Registeration101"> 
     <result name="success">pages/inputform.jsp</result> 
     <result name="input">pages/inputform.jsp</result> 
     <result name="done">pages/quoteSuccess.jsp</result> 
    </action> 

cơ bản dẫn name = "đầu vào" được không được xác định

-1

Tên kết quả trong Hành độngstruts.xml phải bằng nhau. Tuy nhiên nếu bạn nhận được lỗi này, nó có thể là vấn đề tệp jar. Hãy thử thêm tệp jar này vào thư viện của bạn: javassist-3.9.0.GA.jar.

0
<action name="update" method="updatePhase" class="Project"> 
    <result name="updated">/Project.jsp</result> 
    <result name="input">/Project.jsp</result> <!-- add input return type as well in your struts.xml --> 
</action> 

Thường thì thực thi()/updatePhase() trong bộ điều khiển được cập nhật nếu mọi thứ ổn. Nhưng có các loại trả lại khác mà thanh chống sẽ cẩn thận.

Bạn có thể xử lý nó bằng tay bằng cách bất chấp giá trị trả về của bạn và tương ứng

<result name="yourReturnValue">/Project.jsp</result> 

Trong vòng bên trong thẻ tương ứng.

Hy vọng điều đó đã rõ ràng.

0

Câu trả lời đơn giản - xảy ra khi bạn cung cấp đầu vào sai. Ví dụ: - nếu bạn có trường có tên "firstName" thuộc loại char và nếu bạn cung cấp đầu vào sai (như int)

0

Nếu bạn đã ghi đè phương thức xác thực trong tệp lớp học của mình (class = "project "trong trường hợp của bạn), sau đó nó đòi hỏi các giá trị đầu vào cần thiết mà bạn sử dụng trong phương thức xác nhận hợp lệ. Bạn có thể chuyển các giá trị cần thiết hoặc thay đổi một số xác nhận hợp lệ trong phương thức xác thực.

2

Giả sử bạn đến từ x.jsp.

Một số lần khi bạn đặt chú thích xác thực trong lớp bean, bạn đang sử dụng trong Hành động của mình và không cung cấp x.jsp, ngoại lệ được ném.

Nếu bạn không muốn xác thực đầu vào, chỉ cần xóa chú thích xác thực khỏi lớp bean.

2

Trường hợp phổ biến nhất là sự hiện diện của plugin quy ước. Hãy tìm bất cứ điều gì với một "quy ước" trong đó và loại bỏ điều đó. Mô tả chi tiết hơn sẽ sớm được thực hiện.

+0

Tôi mong được mô tả chi tiết hơn. – simon

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