Võ Văn Hải's blog

Chỉ có một điều tuyệt đối đó là mọi thứ đều tương đối…

Thiết kế các trang JSP

Ứng dụng Logon & Registration sử dụng JSP làm tầng trình diễn với 10 files JSP được liệt kê như sau:

  1. login.jsp
  2. success.jsp
  3. useraccount.jsp
  4. newaccountsuccess.jsp
  5. userUpdateSuccess.jsp
  6. forgotpassword.jsp
  7. successpwdsend.jsp
  8. changepassword.jsp
  9. changepasswordsuccess.jsp
  10. logout.jsp

Ngoài ra ứng dụng cần có 1 file để định kiểu: file style.css

Bây giờ chúng ta sẽ làm việc trức tiếp với từng file như sau:

1. login.jsp

<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>Login Page</title>
<link href=”../css/style.css” rel=”stylesheet” type=”text/css”/>
</head>
<body>
<f:view>
<center>
<h:panelGrid width=”380px” columns=”2″ border=”0″>
<rich:panel header=”Login” style=”background-color: #ebf3fd;”>
<h:form id=”LoginForm”>
<h:outputText value=”#{LoginForm.text}” />
<h:panelGrid id=”lpg” columns=”2″ >
<h:outputText value=”User Id”/>
<h:inputText id=”username” value=”#{LoginForm.userName}” styleClass=”inputbox”/>
<h:outputText value=””/>
<h:message for=”username” styleClass=”errors”/><h:outputText value=”Password”/>
<h:inputSecret id=”password” value=”#{LoginForm.password}” styleClass=”inputbox”/>
<h:outputText value=””/>
<h:message for=”password” styleClass=”errors”/>

<h:outputText value=””/>
<h:commandButton value=”Login” action=”#{LoginForm.validUser}” styleClass=”submitButton”/>
</h:panelGrid>
</h:form>

<h:form>
<h:panelGrid id=”bottompg” columns=”1″ >
<h:outputText value=”New User?” style=”font-family:arial, verdana;font-size:10px;”/>
<h:commandLink value=”Register Here” action=”useraccount” style=”font-family:arial, verdana;font-size:12px;”/>
<h:outputText value=””/>
<h:commandLink value=”Forgot Password?” action=”forgotpassword” style=”font-family:arial, verdana;font-size:12px;”/>
</h:panelGrid>
</h:form>

</rich:panel>
</h:panelGrid>
</center>
</f:view>
</body>
</html>

Trang web xuất hiện với thiế kế trên. Người sử dụng sẽ phải nhập user id và password để đăng nhập.

https://vovanhai.files.wordpress.com/2008/11/logreg_04.png

Nếu đăng nhập thành công, trang success.jsp sẽ xuất hiện.
2. success.jsp

<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>Login Successful</title>
<link href=”../css/style.css” rel=”stylesheet” type=”text/css” />
</head>
<body>
<f:view>
<center><h:panelGrid width=”380″ columns=”2″ border=”0″>
<rich:panel header=”Login Successful”
style=”background-color: #ebf3fd;”>
<center><h:outputText value=”Welcome “
style=”font-size:15px;font-weight:bold” /> <h:outputText
value=”#{sessionScope.username}”
style=”font-size:15px;font-weight:bold” /></center><h:form>
<rich:spacer height=”30″ />
<br>

<h:commandLink value=”Edit User Profile”
action=”#{userForm.editProfile}”
style=”font-family:arial, verdana;font-size:12px;” />
<br>
<br>

<h:commandLink value=”Change Password” action=”changePassword”
style=”font-family:arial, verdana;font-size:12px;” />
<br>
<br>

<rich:spacer height=”10″ />
<h:commandLink value=”Logout” action=”#{LoginForm.logout}”
style=”font-family:arial, verdana;font-size:12px;” />
</h:form>
</rich:panel>
</h:panelGrid></center>
</f:view>
</body>
</html>

https://vovanhai.files.wordpress.com/2008/11/logreg_051.png

Sau khi đăng nhập thành công, user có thể hiệu chỉnh profile hoặc đổi mật khẩu. Nếu user hiệu chỉnh profile, trang useraccount.jsp sẽ xuất hiện.
3. useraccount.jsp

<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>User Registration/Information</title>
<style type=”text/css”>
.errors {
color: red;
font-size: 12px;
}
</style>
<link href=”../css/style.css” rel=”stylesheet” type=”text/css” />
</head>
<body>
<center><f:view>
<h:form id=”UserForm”>
<h:panelGrid width=”580″ columns=”2″ border=”0″>
<rich:panel header=”User Information”
style=”background-color: #ebf3fd;”><h:inputHidden value=”#{userForm.id}” id=”id” />
<h:inputHidden id=”hiddenUserName” value=”#{userForm.userName}” />

<h:outputText value=”*” style=”color:#ff0000;” />are Mandatory.

<h:panelGrid id=”upg” columns=”2″ border=”0″ cellspacing=”0″
cellpadding=”0″>

<h:panelGroup>
<h:outputText value=”First Name” />
<h:outputText value=”*” style=”color:#ff0000;” />
</h:panelGroup>
<h:panelGroup>
<h:inputText id=”firstName” value=”#{userForm.firstName}”
styleClass=”inputbox” />
<h:message for=”firstName” styleClass=”errors” />
</h:panelGroup>
<h:outputText value=”” />
<h:outputText value=”” />

<h:panelGroup>
<h:outputText value=”Last Name” />
<h:outputText value=”*” style=”color:#ff0000;” />
</h:panelGroup>
<h:panelGroup>
<h:inputText id=”lastName” value=”#{userForm.lastName}”
styleClass=”inputbox” />
<h:message for=”lastName” styleClass=”errors” />
</h:panelGroup>
<h:outputText value=”” />
<h:outputText value=”” />

<h:panelGroup>
<h:outputText value=”User Name” />
<h:outputText value=”*” style=”color:#ff0000″ />
</h:panelGroup>
<h:panelGroup>
<h:inputText id=”userName” size=”50″
disabled=”#{userForm.isUserNameDisabled}”
value=”#{userForm.userName}” styleClass=”inputbox” />
<h:message for=”userName” styleClass=”errors” />
</h:panelGroup>
<h:outputText value=”” />
<h:outputText value=”” />

<h:panelGroup id=”pwd”>
<h:outputText value=”Password” />
<h:outputText value=”*” style=”color:#ff0000″ />
</h:panelGroup>
<h:panelGroup>
<h:inputSecret id=”password” value=”#{userForm.password}”
redisplay=”true” styleClass=”inputbox” />
<h:message for=”password” styleClass=”errors” />
</h:panelGroup>
<h:outputText value=”” />
<h:outputText value=”” />

<h:panelGroup>
<h:outputText value=”Confirm Password” />
<h:outputText value=”*” style=”color:#ff0000″ />
</h:panelGroup>
<h:panelGroup>
<h:inputSecret id=”confirmPassword”
value=”#{userForm.confirmPassword}” redisplay=”true”
styleClass=”inputbox” />
<h:message for=”confirmPassword” styleClass=”errors” />
</h:panelGroup>
<h:outputText value=”” />
<h:outputText value=”” />

<h:panelGroup>
<h:outputText value=”E-Mail” />
<h:outputText value=”*” style=”color:#ff0000″ />
</h:panelGroup>
<h:panelGroup>
<h:inputText id=”email” size=”50″ value=”#{userForm.email}”
styleClass=”inputbox” />
<h:message for=”email” styleClass=”errors” />
</h:panelGroup>
<h:outputText value=”” />
<h:outputText value=”” />

<h:panelGroup style=”text-valign:top;display:block;height:100%;”>
<h:outputText value=”Address” />
<h:outputText value=”*” style=”color:#ff0000″ />
</h:panelGroup>
<h:panelGroup>
<h:inputTextarea id=”address” rows=”8″ cols=”100″
value=”#{userForm.address}” styleClass=”inputbox”></h:inputTextarea>
<h:message for=”address” styleClass=”errors” />
</h:panelGroup>
<h:outputText value=”” />
<h:outputText value=”” />

<h:panelGroup>
<h:outputText value=”Country” />
<h:outputText value=”*” style=”color:#ff0000;” />
</h:panelGroup>
<h:panelGroup>
<h:inputText id=”country” size=”50″ value=”#{userForm.select}”
styleClass=”inputbox” />
<h:message for=”country” styleClass=”errors” />
</h:panelGroup>
<h:outputText value=”” />
<h:outputText value=”” />

<h:panelGroup>
<h:outputText value=”State” />
<h:outputText value=”*” style=”color:#ff0000;” />
</h:panelGroup>
<h:panelGroup>
<h:inputText id=”state” size=”50″ value=”#{userForm.state}”
styleClass=”inputbox” />
<h:message for=”state” styleClass=”errors” />
</h:panelGroup>
<h:outputText value=”” />
<h:outputText value=”” />

<h:panelGroup>
<h:outputText value=”Contact Number” />
<h:outputText value=”*” style=”color:#ff0000″ />
</h:panelGroup>
<h:panelGroup>
<h:inputText id=”contactNumber” size=”50″
value=”#{userForm.contactNumber}” styleClass=”inputbox” />
<h:message for=”contactNumber” styleClass=”errors” />
</h:panelGroup>
<h:outputText value=”” />
<rich:spacer height=”15″ />

<h:panelGroup>
<h:outputText value=”” />
</h:panelGroup>
<h:panelGroup>
<h:commandButton value=”#{userForm.buttonName}”
action=”#{userForm.saveUser}” styleClass=”submitButton” />
</h:panelGroup>
<h:outputText value=”” />
<h:outputText value=”” />
</h:panelGrid>
</rich:panel>
</h:panelGrid>
</h:form>
</f:view></center>
</body>
</html>

Trang này có thể được link bằng 1 trong 2 trường hợp: Hoặc người sử dụng nhấn link “Register Here” để đăng ký user mới hoặc sau khi user đăng nhập thành công chọn link “Edit User Profile” sẽ link đến trang này.

Trong trượng hợp nhấn “Register Here”, màn hình sẽ xuất hiện

https://vovanhai.files.wordpress.com/2008/11/logreg_06.png
Điền dữ liệu người sử dụng rồi nhấn nút “Register”. Nếu dữ liệu không hợp lệ, màn mình như sau
https://vovanhai.files.wordpress.com/2008/11/logreg_07.png
Trong trường hợp nhấn link “Edit User Profile”, màn hình như sau:
https://vovanhai.files.wordpress.com/2008/11/logreg_081.png
4. newaccountsuccess.jsp

<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>User Registration Successful</title>
<link href="../css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<f:view>
<center><h:panelGrid width="380" columns="2" border="0">
<rich:panel header="User Registration Successful"
style="background-color: #ebf3fd;">
<h:form>
<h:outputText
value="Thanks for registering with us. Account login details have been sent to your mail id."
style="font-size:15px" />
<br>
<rich:spacer height="30" />
<h:outputLink value=”login.jsf”>
<h:outputText value=”Click to login” />
</h:outputLink>
</h:form>
</rich:panel>
</h:panelGrid></center>
</f:view>
</body>
</html>

https://vovanhai.files.wordpress.com/2008/11/logreg_09.png
5. userUpdateSuccess.jsp

<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>User Update Successful</title>
<link href="../css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<f:view>
<center><h:panelGrid width="380" columns="2" border="0">
<rich:panel header="User Update Successful"
style="background-color: #ebf3fd;">
<h:form>
<h:outputText value="Account details have been updated."
style="font-size:15px" />
<br>
<rich:spacer height="30" />
<h:commandLink value=”Go back to main” action=”gotomain” />
</h:form>
</rich:panel>
</h:panelGrid></center>
</f:view>
</body>
</html>

https://vovanhai.files.wordpress.com/2008/11/logreg_10.png
6. forgotpassword.jsp

<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>Forget Password</title>
<link href=”../css/style.css” rel=”stylesheet” type=”text/css” />
</head>
<body>
<f:view>
<center><h:panelGrid width=”380″ columns=”2″ border=”0″>
<rich:panel header=”Send password by mail”
style=”background-color: #ebf3fd;”>
<h:form id=”sendPasswordByMail”>
<h:panelGrid id=”lpg” columns=”2″><h:outputText value=”Enter e-mail Id” />
<h:inputText id=”email” value=”#{RetrievePassword.email}”
styleClass=”inputbox” />
<h:outputText value=”” />
<h:message for=”email” styleClass=”errors” />

<h:outputText value=”” rendered=”#{RetrievePassword.isRendered}” />
<h:outputText value=”This e-mail id is not registered with us.”
styleClass=”errors” rendered=”#{RetrievePassword.isRendered}” />
<h:outputText value=”” rendered=”#{RetrievePassword.isRendered}” />
<h:outputText value=”Please Try Again ” styleClass=”errors”
rendered=”#{RetrievePassword.isRendered}” />

<h:outputText value=”” />
<h:commandButton value=”Send Password”
action=”#{RetrievePassword.check}” styleClass=”submitButton” />

</h:panelGrid>
</h:form>
</rich:panel>
</h:panelGrid></center>
</f:view>
</body>
</html>

https://vovanhai.files.wordpress.com/2008/11/logreg_11.png

nếu user gõ 1 email không tồn tại trong databse, sẽ có 1 thông báo lỗi như sau:

https://vovanhai.files.wordpress.com/2008/11/logreg_12.png
7. successpwdsend.jsp

<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>Password sending success</title>
<link href="../css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<f:view>
<center><h:panelGrid width="380" columns="2" border="0">
<rich:panel header="Password sending successful"
style="background-color: #ebf3fd;">
<h:form>
<h:outputText
value="Your account password has been sent to your mail id. Please check your mail to get the password and login again."
style="font-size:15px" />
<br>
<rich:spacer height="30" />
<h:outputLink value=”login.jsp”>
<h:outputText value=”Click to login” />
</h:outputLink>
</h:form>
</rich:panel>
</h:panelGrid></center>
</f:view>
</body>
</html>

https://vovanhai.files.wordpress.com/2008/11/logreg_13.png
8. changepassword.jsp

<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>Change Password</title>
<link href=”../css/style.css” rel=”stylesheet” type=”text/css” />
</head>
<body>
<f:view>
<center><h:form id=”changePwdForm”>
<h:panelGrid width=”400″ columns=”2″ border=”0″>
<rich:panel header=”Change Password”
style=”background-color: #ebf3fd;”>
<h:outputText value=”#{userForm.text}” styleClass=”textgreen” />
<h:panelGrid id=”lpg” columns=”2″><h:outputText value=”Old Password” />
<h:inputSecret id=”oldpwd” redisplay=”true” size=”50″
value=”#{userForm.oldPwd}” styleClass=”inputbox” />

<h:outputText value=”New Password” />
<h:inputSecret id=”newPwd” redisplay=”true” size=”50″
value=”#{userForm.newPwd}” styleClass=”inputbox” />
<h:outputText value=”” />
<h:message for=”newPwd” styleClass=”errors” />

<h:outputText value=”Confirm Password” />
<h:inputSecret id=”newPwdConfirm” redisplay=”true” size=”50″
value=”#{userForm.newPwdConfirm}” styleClass=”inputbox” />
<h:outputText value=”” />
<h:message for=”newPwdConfirm” styleClass=”errors” />

<h:outputText value=”” />
<h:commandButton value=”Change Password”
action=”#{userForm.changePassword}” styleClass=”submitButton” />
</h:panelGrid>
</rich:panel>

</h:panelGrid>
</h:form></center>
</f:view>
</body>
</html>

https://vovanhai.files.wordpress.com/2008/11/logreg_14.png
https://vovanhai.files.wordpress.com/2008/11/logreg_15.png

9. changepasswordsuccess.jsp

<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>Password change success</title>
<link href="../css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<f:view>
<center><h:panelGrid width="380" columns="2" border="0">
<rich:panel header="Changing Password Successful"
style="background-color: #ebf3fd;">
<h:form id="LoginForm">
<h:outputText value="Password Changed successfully."
style="font-size:15px" />
<br>
<rich:spacer height="30" />
<h:commandLink value=”Go back to main” action=”gotomain” />
</h:form>
</rich:panel>
</h:panelGrid></center>
</f:view>
</body>
</html>

https://vovanhai.files.wordpress.com/2008/11/logreg_16.png
10. logout.jsp

<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>Logout Successful</title>
<link href=”../css/style.css” rel=”stylesheet” type=”text/css” />
</head>
<body>
<f:view>
<center><h:panelGrid width=”380″ columns=”2″ border=”0″>
<rich:panel header=”Logout Successful”
style=”background-color: #ebf3fd;”>
<h:form id=”LoginForm”>
<h:outputText value=”You have been successfully Logged out.”
style=”font-size:15px” />
<br>
<rich:spacer height=”30″ /><h:outputLink value=”login.jsp”>
<h:outputText value=”Click to login Again” />
</h:outputLink>
</h:form>
</rich:panel>
</h:panelGrid></center>
</f:view>
</body>
</html>

https://vovanhai.files.wordpress.com/2008/11/logreg_17.png
File style.css

body{
margin:20px;
padding:0px;
font-family:arial, verdana;
font-size:12px;
text-align:center;
width:975px;
}
body a{
color:#000000;
text-decoration:none;
}body a:hover{
color:#818181;
text-decoration:none;
}

.inputbox {
background-color:#FFFFFF;
color: #333333;
width:200px;
border-width:1px;
border-style:solid;
border-color:#808080;

}

.inputbox:hover {
border-width:1px;
border-style:solid;
border-color:#11A3EA;
}

.inputbox:focus {

border-width:1px;
border-style:solid;
border-color:#11A3EA;
color: #0F4987;
}

.submitButton {
background-color: #ffffff;
color: #000000;
background: #ffffff;
border: 1px solid #cccccc;
text-align: center;
width: auto;
padding: 2px 3px 2px 3px;
}

.errors{
color:red;
font-size:12px;
}

Chúc mừng, bạn đã có giao diện rồi. Viết code xử lý thôi!

23 Responses to “Thiết kế các trang JSP”

  1. Mai Dương said

    thầy ơi, chương trình báo lỗi không tìm được libary http://richfaces.org/
    thầy chỉ dùm em với
    Thanks and Best Regards

  2. vovanhai said

    Để tham chiếu được em phải có thư viện richfaces. Đọc bài Cấu hình và phát triển RichFaces với Eclipse Ganymede

  3. vovanhai said

    Để tham chiếu được em phải có thư viện richfaces. Đọc bài Cấu hình và phát triển RichFaces với Eclipse Ganymede. Chúc vui!

  4. TrungCT said

    gửi bạn VoVanHai !
    Mình đã xem rất nhiều chương trình bạn viết và cảm thấy bạn là một người chuyên nghiệp về Java nói chung !
    Hiện tại thì mình mới đang theo học lập trình và rất yêu thích ngôn ngữ Java , nhất là JSP/Servlet.
    Bạn có thể giúp mình 1 Project chung về mô hình MVC trong JSP/Servlet có kết nối đến database gồm thao tác trên 2bảng trong CSDL MSSQL Server2005. Project gồm đăng nhập , đăng ký thành viên , thêm 1 sản phẩm, edit ,delete , update sản phầm!
    Mong bạn chiếu cố để mình được mở mang thêm !
    Nếu được mong bạn send dùm mình qua mail : trungct1205@mail.com

  5. Hùynh Thanh Ngân said

    Thầy ơi,cảm ơn Thầy.em làm theo bài mẩu của Thầy được rồi.
    em mới bắt đầu học JSP,Thầy có bài tập nào cho em tham khảo thêm ko Thầy.Em cảm ơn Thầy rất nhiều.

  6. vovanhai said

    với những ví dụ trên blog này, tôi nghĩ bạn tổng hợp lại là có thể có 1 bài như bạn muốn. Chúc bạn thành công!

  7. Xuân Anh said

    Thầy cho em hỏi với ạ ! Em đang làm JSF ! Phần Validate trên form Register của thầy thầy có thể nói rõ hơn được không ạ ! Vì để hiển thị đc các messages như ý muốn em ko biết làm cách nào !
    E đang tìm hiểu về JSF trên nền Web Logic Portl ! Nếu được thầy cho em hỏi cách sử dụng Javascript để Validate form JSF trên portlet được không ạ ! Em cám ơn thầy

  8. DoHongQuan said

    Thay co code upload image trong java k cho em voi

  9. Võ Văn Thuận said

    EM chào thầy!
    Cho em xin hỏi, em muốn dùng javascript để tạo các control của jsf. Xin thầy chỉ giúp em với.
    Em cảm ơn.

  10. Võ Văn Thuận said

    Em chào thầy!
    Xin thầy chỉ giúp em cách tạo các control jsf bằng code java.
    Em xin cảm ơn.

  11. Thien said

    Nếu cho file faces-config.xml và các bean.java thì hay biết mấy.

  12. sinat said

    Em chào thầy Hải,
    Cho em hỏi 1 xíu ah.
    Em đang làm như thầy nhưng chỉ copy và dán code của thầy để em chạy mà không thể tự design trong eclipse ( Java 2ee). Mong thầy chỉ giúp em cách design trong eclipse nhe.

    Cảm ơn thầy,

  13. Võ Văn Hải said

    Nhấn chuột phải lên trang cần design trong Project Explorer, chọn Open With -> Web Page Editor.

  14. Vu said

    Chào thầy.
    Em làm tới làm lui mãi mà không biết thư viện rachface ở đâu.
    Em sử dụng NetBean làm. em có cần Jboss ko? Nếu có thì em download ở đâu?
    Cám ơn thầy.

  15. Võ Văn Hải said

    Thư viện Richfaces ở đây bạn: http://www.jboss.org/richfaces. Nếu bạn có dùng với EJB thì dùng JBoss, còn không thì Tomcat cũng được.

  16. Kid said

    Em chào thầy. Em thấy có phần bắt lỗi khi không nhập đúng data. vậy thầy có thể chỉ cho em làm phân đó được không ạ.

    Trong bài của thầy em không thấy tag f:validate.

    Thầy có thể chỉ cho em biết cách tạo 1 trang
    public class username implements Validator để hiện thị lỗi theo ý mình.

    Em dùng JSF 2.1 nên không có file faces-config.xml

    Em cảm ơn thầy

  17. Trung Trực said

    Em chào thầy!
    thầy cho em hỏi ,mình có cần tạo cơ sở dữ liệu và cần trang”.jsp” để kết nối cơ sở dữ liệu không thầy? hay mình chỉ cần xây dựng những trang “jsp” như thầy đã trình bày ở trên là được ! Mong thầy hướng dẫn giúp em..
    Cám ơn thầy!

  18. Tai said

    e đã add richface nhưng vẫn lỗi dòng này @@.xin thầy chỉ giúp :(

  19. QuangDiep285 said

    Em chào thầy ạ !
    Thầy có thể chỉ giúp em các up code java JSF lên host được ko ạ !
    Em up lên nó bảo OK roài nhưng chả hiểu sao không chạy được toàn báo lỗi HTTP Status 404 – Servlet Faces Servlet is not available
    Mong thầy giúp em ! Em cảm ơn thầy ạ ! :)

  20. Vân Trinh said

    Thưa thầy em đang làm bài jsp, nhưng gặp vấn đề về phần hình ảnh, hình ảnh nếu chạy riêng (em bỏ project vào tomcat thì sẽ load lên được hình ) nhưng nếu em chạy trong netbean (build chạy luôn ) thì nó không hiện lên hình ảnh. Không biết là do netbean lỗi hay vì vấn đề nào khác ? em đã chú ý tới phần đường dẫn nhưng thật sự không phải là đường dẫn của hình bị sai

  21. thưa thầy, em đang làm projsect về JSP mọi thứ đều đang làm ổn chỉ có phần hình, khi em chạy lại không hiện hình ảnh. Em viết JSP trong netbean và buil bằng netbean thì không có hình, nhưng khi để file jsp đó vô tomcat chạy thì lại có hình. Xin thầy giúp em biết đó là do đâu. Em cám ơn thầy.

  22. Sỉ said

    thầy cho em hỏi File style.css thiết kế trong phần nào của một project hả thầy,

  23. hangquocnam said

    thầy ơi cho em hỏi file style.css mình thiết kế trong phần nào ạ,va minh có thể gọi file css đó ra thông qua thẻ div ko ạ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.

Join 2,193 other followers

%d bloggers like this: