A. JSF+EJB項目。小項目就行,簡單點的,可以實現用戶登錄,用戶登錄從資料庫中取值
用戶登錄
配置文件:
<faces-config>
<managed-bean>
<managed-bean-name>myForm</managed-bean-name>
<managed-bean-class>
com.web.UserForm
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>from.jsp</from-view-id>
<navigation-case>
<from-outcome>result</from-outcome>
<to-view-id>to.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
model(對象)User:有兩個屬性:userName,passWord
public class User {
private String userName;
private String passWord;
//get & set 方法省略
}
頁面
<f:view >
<h:form id="InputForm" enctype="multipart/form-data">
<h:inputText value=#{UserForm.user.userName}></h:inputText>
<h:inputSecret value=#{UserForm.user.passWord}></h:inputSecret>
<h:commandLink action="#{UserForm.login}">
<h:outputText value="登陸"/>
</h:commandLink>
</h:form >
</f:view >
UserForm中:把User對象初始化,寫一個login方法,用戶名和密碼就會保存在對象User中,在login方法中進行驗證。調用介面或者DAO層,還是用Hibernate或者JDBC,對數據進行操作就可以了。
B. jsf如何從頁面把數據傳到資料庫里
通過 el 直接綁定值
比如你的action中有個 String name; 提供get set 方法
前台 <h:inputText value = "#{actionname.name}">
你在通過一個 commandButton 或者 commandLink
來調用後台的 保存的方法
這個方法裡面 直接用 hibernate 或者 jpa jdbc也可以 保存 name的值就可以
它會自動把頁面上填的的值 綁定給 name的
C. JSF和Struts2高手請進
用過jsf,有ModelBean這么個java類,裡面有name這個屬性,有get,set方法,在頁面上只要把文本控制項的值綁定為#{ModelBean.name},頁面的值就自動會與java後台同步。例如,打開頁面,控制項會自動調用get方法去取name的值,提交表單,會自動調用set方法來設置java裡面的name值。
不知道你要的是不是這個
D. jsf框架用處大嗎學完jsp可以直接學SSH之類的框架嗎
jsf就沒什麼必要學習了 需要用到再去看看
但是基本的java html js css jsp ajax之類的要熟悉 可以學一下ext 和jqueyr之類的。。。然後架構方面學習下ssh、 s2sh、ssi(ibatis)基本上也就是ok了 會用知道原理就行了 沒必要一定要了解多深
資料庫最好學下orcale 至少要會用。。。。一般大項目用的比較多 中小型項目一般用sqlserver或者mysql 其實都是差不多的啦 學會oracle再去學別的稍微看下就會了。。。至於db2之類的 哥也沒機會去玩過。。。目前資料庫方面就玩過這三樣。。自己家裡玩的是mysql和sql2k 公司用的是oracle和mysql(網站用)
E. jsf 使用資料庫綁定問題
具體的例外堆棧信息呢?
F. jsf中 如何給頁面列表屬性名後邊添加排序按鈕屬性名是從資料庫動態導入的,求大神指點。。。謝謝!
自己寫的話 你可以寫個按鈕 點擊後後台代碼排序後 刷新 前台頁面
或者用richfaces裡面自帶的排序功能,參看
http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=dataTable&sample=tableSorting&skin=blueSky
G. 前台顯示和後台 資料庫數據不一致, 我用的是JSF ,JPA MYSQL.
1,首先你要確定你在後台查出來的數據是否是你需要的,測試方法:可以把相關JPA中的sql語句放到mysql圖形操作界面查詢。如果這里查出數據是你需要的,那麼可以在調用方法的地方看看是否傳的參數不對(參數位置傳的不對應)。如果確定對:那麼在此列印出你查出來的數據。對比之前在圖形界面查出來的數據。看看是否一致。如果一致:確定是否將數據綁定到後台。
2:以上都正確的話,檢驗JSF頁面上遍歷或者顯示的變數名字是否與你後台綁定的變數名字相同。
如果一樣,檢查JSF頁面上是否有條件不然某些數據顯示。
3:如果還有問題可以再問我。我之前的工作環境也是JSF,JPA MYSQL
H. java中jsf框架為什麼用的很少
隨著 java的流行(面向對象),對 面向對象的深入 框架也越來越多 spring struts1.x struts2 資料庫的 hibernate 等; 以及 框架的組合應用 已經普及。
這都是相對 java 特性來的, 擴展性、移植性 、開發效率 等 。
對於公司 節省成本 獲得最大利潤是最好的。
jsf 對於團隊開發也有一定的局限性 對於java特性來說 也相應弱了些。
所以 用 jsf的就少了
I. 關於javaee 中jsf用jdbc調資料庫的問題
您好,這樣;
package com.weijia.firstdemo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.DataSource;
public class JdbcUtils {
private static String user = "root";
private static String password = "123456";
private static String dbName = "test";
private static String url = "jdbc:mysql://localhost:3306/"+dbName+"?user="+user+"&password="+password+"&useUnicode=true&characterEncoding=gb2312";
private static DataSource dataSource = null;
/**
* 載入驅動
*/
static{
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(Exception e){
System.out.println("Exception:"+e.getMessage()+"");
throw new ExceptionInInitializerError(e);
}
}
private JdbcUtils(){
}
/**
* 獲取連接
* @return
* @throws SQLException
*/
public static Connection getConnection() throws SQLException{
return DriverManager.getConnection(url);
}
public static DataSource getDataSource(){
return dataSource;
}
/**
* 釋放資源
* @param rs
* @param st
* @param conn
*/
public static void free(ResultSet rs,Statement st,Connection conn){
try{
if(rs != null){
rs.close();
}
}catch(SQLException e){
e.printStackTrace();
}finally{
try{
if(st != null){
st.close();
}
}catch(SQLException e){
e.printStackTrace();
}finally{
try{
if(conn != null){
conn.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
}
}
}
J. jsf 實現模糊查詢
比如你值是放在了criteria裡面這個欄位存在你的資料庫表1裡面的欄位A裡面,那麼後台需要調用一個自定義的函數,其中你前台獲取的欄位criteria同步到中間層裡面的Bean中的成員變數AA中,通過getAA()獲取AA的值,然後由函數來實現模糊查詢,
函數的主要內容為:
StringBuffer hq1=new StringBuffer();
hq1.append("from 表1 a where 表1.A like '%").append(getAA()).append("%'");
這部分代碼就是你實現模糊查詢的後台代碼的方法,不過不全,只是當然其中還需要你在中間層的bean中定義對象等,但是那些就太多了,不是簡單能說清楚的。
你抽空看看hibernate吧,這是JSF開發SSH三層構架裡面面對資料庫需要的技術,另外做jsf到後台部分你需要會sql語音
希望對你有幫助