PAGES
CREATE TABLE PAGES (
PAGE_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
PAGE_CODE VARCHAR( 255 ) NOT NULL ,
PAGE_DESC VARCHAR( 255 ) NOT NULL ,
ROLE_ID INT NOT NULL
) ENGINE = MYISAM ;
Page.java
package entity;
import java.io.Serializable;
public class Page implements Serializable {
private static final long serialVersionUID = -1869745073687894593L;
private Integer id;
private String code;
private String desc;
private Role role;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
}
PageDAO.java
package data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import entity.Page;
import entity.Role;
public class PageDAO implements Serializable {
/**
*
*/
private static final long serialVersionUID = 4783917742082486720L;
private static String SQL_SELECT = "SELECT A.* "
+ " ,B.ROLE_CODE,B.ROLE_DESC FROM PAGES A"
+ " INNER JOIN ROLES B ON A.ROLE_ID=B.ROLE_ID ";
private static String SQL_SELECT_BY_ID = SQL_SELECT + " WHERE A.PAGE_ID=?";
private static String SQL_SELECT_BY_CODE = SQL_SELECT + " WHERE A.PAGE_CODE=?";
private static String SQL_INSERT = "INSERT INTO PAGES VALUES(null, ?, ?, ?)";
private static String SQL_UPDATE = "UPDATE PAGES SET PAGE_CODE=?, PAGE_DESC=?, ROLE_ID=? WHERE PAGE_ID=?";
private List<Page> getTable(String query, Object... values) {
List<Page> table = new ArrayList<Page>();
List<Map<String, Object>> data = DataAdapter.getData(query, values);
for (int i = 0; i < data.size(); i++) {
Map<String, Object> row = new HashMap<String, Object>();
Page page = new Page();
Role role = new Role();
row = data.get(i);
role.setId((Integer) row.get("ROLE_ID"));
role.setCode((String) row.get("ROLE_CODE"));
role.setDesc((String) row.get("ROLE_DESC"));
page.setId((Integer) row.get("PAGE_ID"));
page.setCode((String) row.get("PAGE_CODE"));
page.setDesc((String) row.get("PAGE_DESC"));
page.setRole(role);
table.add(page);
}
return table;
}
public List<Page> getPages() {
return getTable(SQL_SELECT);
}
public Page getPage(long id) {
List<Page> pages = getTable(SQL_SELECT_BY_ID, id);
if (pages.size() > 0) {
return pages.get(0);
} else {
return null;
}
}
public Page getPage(String code) {
List<Page> pages = getTable(SQL_SELECT_BY_CODE, code);
if (pages.size() > 0) {
return pages.get(0);
} else {
return null;
}
}
public void insert(Page page) {
Object values[] = { page.getCode(), page.getDesc(),
page.getRole().getId() };
DataAdapter.persist(SQL_INSERT, values);
}
public void update(Page page) {
Object values[] = { page.getCode(), page.getDesc(),
page.getRole().getId(), page.getId() };
DataAdapter.persist(SQL_UPDATE, values);
}
}
PageList.javapackage controller;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import data.PageDAO;
import entity.Page;
@ManagedBean(name = "pageList")
@ViewScoped
public class PageList implements Serializable {
private static final long serialVersionUID = 1L;
private List<Page> pages;
public PageList() {
pages = new PageDAO().getPages();
}
public List<Page> getPages() {
return pages;
}
public void setPages(List<Page> pages) {
this.pages = pages;
}
}
pageList.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
template="/resources/template.xhtml">
<ui:param name="title" value="Sayfa Listesi" />
<ui:define name="content">
<h:form prependId="false">
<h:button outcome="pageEdit.xhtml" value="Yeni Kayıt" />
<h:dataTable value="#{pageList.pages}" var="page"
rendered="#{fn:length(pageList.pages)>0}">
<h:column>
<f:facet name="header">Id</f:facet>
#{page.id}
</h:column>
<h:column>
<f:facet name="header">Kod</f:facet>
#{page.code}
</h:column>
<h:column>
<f:facet name="header">Tanım</f:facet>
#{page.desc}
</h:column>
<h:column>
<f:facet name="header">Rol</f:facet>
#{page.role.desc}
</h:column>
<h:column>
<f:facet name="header">İşlem</f:facet>
<h:link outcome="pageEdit.xhtml?faces-redirect=true"
value="Düzenle">
<f:param name="id" value="#{page.id}" />
</h:link>
</h:column>
</h:dataTable>
</h:form>
</ui:define>
</ui:composition>
PageEdit.java
package controller;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.SelectItem;
import util.FacesUtil;
import data.PageDAO;
import data.RoleDAO;
import entity.Page;
import entity.Role;
@ManagedBean(name = "pageEdit")
@ViewScoped
public class PageEdit implements Serializable {
private static final long serialVersionUID = 1L;
private Page page = new Page();
private List<SelectItem> selectRoles = new ArrayList<SelectItem>();
private PageDAO pageDAO = new PageDAO();
public PageEdit() {
if (FacesUtil.getRequestParameter("id") != null) {
int id = Integer.parseInt(FacesUtil.getRequestParameter("id"));
page = pageDAO.getPage(id);
} else {
page.setRole(new Role());
}
List<Role> roles = new RoleDAO().getRoles();
selectRoles.clear();
for (Role role : roles) {
selectRoles.add(new SelectItem(role.getId(), role.getDesc()));
}
}
public Page getPage() {
return page;
}
public void setPage(Page page) {
this.page = page;
}
public List<SelectItem> getSelectRoles() {
return selectRoles;
}
public void setSelectRoles(List<SelectItem> selectRoles) {
this.selectRoles = selectRoles;
}
public String save() {
if (control()) {
if (page.getId() == null || page.getId() == 0)
pageDAO.insert(page);
else
pageDAO.update(page);
return "pageList.xhtml?faces-redirect=true";
}
return null;
}
public boolean control() {
if (page.getId() != null && page.getId() > 0) {
Page dbPage = pageDAO.getPage(page.getCode());
if (dbPage != null && (page.getId() != dbPage.getId())) {
FacesUtil.addMessage("Sayfa kodu önce kullanılmış",
FacesMessage.SEVERITY_ERROR);
return false;
}
}
return true;
}
}
pageEdit.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
template="/resources/template.xhtml">
<ui:param name="title" value="Sayfa Giriş/Düzenle" />
<ui:define name="content">
<h:form prependId="false">
<h:panelGrid columns="2">
<h:outputText value="Kod" />
<h:inputText value="#{pageEdit.page.code}" required="true"
requiredMessage="Kod alanı boş geçilemez..." />
<h:outputText value="Tanım" />
<h:inputText value="#{pageEdit.page.desc}" required="true"
requiredMessage="Tanım alanı boş geçilemez..." />
<h:outputText value="Rol" />
<h:selectOneMenu value="#{pageEdit.page.role.id}">
<f:selectItems value="#{pageEdit.selectRoles}" />
</h:selectOneMenu>
<h:panelGroup>
<h:commandButton action="#{pageEdit.save}" value="Kaydet" />
#{' '}
<h:button outcome="pageList.xhtml?faces-redirect=true"
value="Vazgeç" />
</h:panelGroup>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>



