2012-01-25 43 views
21

Bạn có thể thực hiện câu lệnh if-then-else bên trong biểu thức JSP không?Nếu-thì-khác trong biểu thức JSP?

EDIT: Cụ thể là tôi đang tìm giải pháp JSP, không phải giải pháp JSTL. Nhưng một số giải pháp JSTL dưới đây được đánh giá cao và rất được hoan nghênh. Chỉ cần xin vui lòng không bỏ phiếu cho tôi xuống cho một câu hỏi trùng lặp vì một trong những đã được hỏi về JSTL.

+2

Có. http://stackoverflow.com/questions/4587397/how-to-use-if-else-option-in-jstl –

+0

@Simon, tôi đã yêu cầu JSP không phải JSTL. (Tôi không chắc chắn nếu tôi đang sử dụng thuật ngữ thích hợp.) – Xonatron

Trả lời

22

Nếu bạn đang sử dụng JSTL, bạn có thể chọn khi nào khác.

<c:choose> 
    <c:when test="condition"></c:when> 
    <c:when test="condition2"></c:when> 
    <c:otherwise></c:otherwise> 
</c:choose> 

Để biết thêm thông tin về JSTL, hãy thử here.

+0

Cảm ơn bạn vì điều này, nhưng tôi đã tìm kiếm một giải pháp JSP không phải là một giải pháp JSTL. Tôi cuối cùng không chắc chắn nếu nó quan trọng hay không cho dự án của tôi, nhưng tôi chưa quen với JSTL. – Xonatron

+1

JSTL thêm rất nhiều chức năng ... nếu bạn đang làm giao diện người dùng của bạn với JSP thì có lẽ nó sẽ đáng để xem xét. Nó khá đơn giản để bắt đầu. – Michael

+0

Cảm ơn vì điều này. Tôi có thể phải nhìn vào nó. Dường như nó cũng có thể xử lý thoát chuỗi dựa trên web. Cảm giác như nó được thiết kế rất tốt cho các ứng dụng web. Như tôi đã nói, tôi chưa bao giờ sử dụng nó, vì vậy đây chỉ là những gì nó xuất hiện như thế. Tôi thực sự là một chút nhầm lẫn giữa JSP Scriptlets và JSP Expressions và JSTL. Khi tôi sử dụng tất cả những gì tôi mong đợi để nắm bắt được mục đích và vị trí của từng mục đích. Một sự lựa chọn giữa một và khác cho đến nay dường như là sang trọng. Đó là mục đích của câu hỏi của tôi thực sự. – Xonatron

28

Trong JSP EL 2.0, bạn có thể thực hiện điều đó bằng toán tử bậc ba. Ví dụ:

<option value="1" ${param.number == 1 ? 'selected' : ''}>First option</option> 

Những gì nó là nó sẽ kiểm tra param 's number biến JSP. Nếu đó là 1, sau đó chọn được thay thế. bằng không, không có gì.

+0

Tôi thích điều này. Nhưng tôi không chắc nó là gì. Nó không phải là biểu thức JSP. Tôi có thể truy cập các biến từ tập lệnh JSP của tôi ở đây không? (Tôi đang cố gắng ngay bây giờ và thất bại.) – Xonatron

+0

'param' chứa tất cả các biến từ tập lệnh. 'param.number' sẽ chỉ truy cập vào giá trị của' số'. –

+0

Tôi có một 'boolean even' trong tệp JSP Scriplet của tôi, nhưng' param.even' dường như không truy cập nó. 'even' chuyển từ' true' thành 'false' mỗi hàng và khi tôi sử dụng' $ {param.even == true? 'even': 'odd'} 'hoặc' $ {param.even? 'even': 'odd'} 'tất cả những gì tôi nhận được là' odd' cho kết quả đầu ra. – Xonatron

11

Bạn có thể quấn mã html của bạn với thẻ jsp như thế này:

<% if (condition) { %> 
<div>Condition is true!</div> 
<% } else { %> 
<div>Condition is false</div> 
<% } %> 
+0

Tôi cũng thích điều này. Đây thực sự là giải pháp hiện tại của tôi! Nhưng nó sử dụng JSP Scriptlets, chứ không phải JSP Expressions. Tôi chỉ muốn có giải pháp thanh lịch nhất. – Xonatron

0

có một cách khác nhau tôi sử dụng vì Eclipse luôn nói với tôi rằng nó không thể giải quyết một biến mà đến từ các servlet trong khi thực hiện đó là bên dưới (PS: Am mới để JSP):

${if(var != null)"text to print"} 
${if(var != null)var} to print a variable 
${if(var != null)"text to print"} 

kết quả sẽ như thế nào

văn bản để in 01.giá trị var tại đây > văn bản cần in

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