jsf spring


login.java
public class Login {

	private String name;

	private String password;

	private LoginService loginService;

	private String errMessage;

	private List<User> lstUser;

	private List<SelectItem> lstDepartments;

	private HtmlInputSecret inputPassword;

	private HtmlDataTable dataTable;
	
	private HtmlSelectOneMenu selectOneMenu;

	public Login() {
		name = null;
		password = null;
		errMessage = null;
		lstUser = null;
	}

	public String login() {
		lstUser = null;
		List<User> list = new ArrayList<User>();
		list = loginService.login(name, password);
		if (list.size() != 0) {
			errMessage = null;
			return "success";
		} else {
			errMessage = "wrong name or password";
			return "failure";
		}

	}

	// * AJAX*//
	public void view() {
		lstDepartments = new ArrayList<SelectItem>();
		lstUser = loginService.getAllAssociates();
		// get all departments

		for (String str : new String[] { "GE", "TEST", "INTEL", "MOTO" }) {
			lstDepartments.add(new SelectItem(str, str));
		}

	}

	// *ActionListener*//
	public void changePassword(ActionEvent e) {
		inputPassword.processValidators(FacesContext.getCurrentInstance());
		inputPassword.processUpdates(FacesContext.getCurrentInstance());
		loginService.changePassword(name, password);
	}

	// *validation*//
	public void validate(FacesContext context, UIComponent component, Object obj) {
		String str = (String) obj;
		if (str.length() < 2 || str.length() > 25) {
			FacesMessage message = new FacesMessage(
					FacesMessage.SEVERITY_ERROR, "",
					"characters' lengh must greater than 1 and less than 25");
			throw new ValidatorException(message);

		}
	}

	// *valueChangeListener*//
	public void selectValueChange(ValueChangeEvent e) {
//		User user = (User) dataTable.get;
//		user.getAddress();
		HtmlSelectOneMenu selectOneMenu = (HtmlSelectOneMenu) dataTable
				.getChildren().get(3).getChildren().get(0);
		loginService.changeDepartment((String) selectOneMenu.getAttributes()
				.get("value"), dataTable.getRowIndex() + 1);
	}

	// *file upload*//
	public void uploadListener(UploadEvent event) {
		try {
			UploadItem item = event.getUploadItem();
			String fileName = item.getFileName();
			File file = new File(
					"D:\\Project\
ewWorkspace\\jsf\\WebContent\\UploadFile\\" + fileName.substring(fileName.lastIndexOf("\\") + 1)); FileInputStream fis = new FileInputStream(item.getFile()); FileOutputStream out = new FileOutputStream(file); int bytes = 0; byte[] bteFile = new byte[1024]; while ((bytes = fis.read(bteFile)) != -1) { out.write(bteFile, 0, bytes); } System.out.println(" !" + file.toString()); } catch (Exception e) { System.out.println(" !"); } } }

 index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>login</title>
</head>
<body>
<f:view>
	<h:form id="test">
		<h:panelGroup layout="block"
			style="text-align:center;padding-top:100px;width:100%">
			<h:panelGroup layout="block" style="padding-left:165px;width:400px">
				<h:outputText value="name:"
					style="font-size: 20px;font-family: Arial;padding-right:35px"></h:outputText>
				<span><h:inputText id="txtName" value="#{loginbean.name}"
					required="true" validator="#{loginbean.validate}">
				</h:inputText></span>
				<span><h:message for="txtName" style="float:right;color:red"></h:message></span>
			</h:panelGroup>
			<br>
			<h:panelGroup layout="block" style="padding-left:165px;width:400px">
				<h:outputText value="password:"
					style="font-size: 20px;font-family: Arial;"></h:outputText>
				<span><h:inputSecret id="txtPassword"
					value="#{loginbean.password}" style="width:150px;" required="true">
					<f:validateLength maximum="25" minimum="2"></f:validateLength>
					</h:inputSecret></span>
				<span><h:message for="txtPassword"
					style="float:right;color:red"showDetail="false" showSummary="true"></h:message></span>
			</h:panelGroup>
			<h:panelGroup layout="block" style="padding-left:165px;width:400px">
				<h:outputText value="#{loginbean.errMessage}" style="color:red"
					rendered="#{loginbean.errMessage != null}" />
				<br>
				<br>
				<h:commandButton value="Login " action="#{loginbean.login}"
					style="border: 1px solid #ccc;"></h:commandButton>
			</h:panelGroup>
		</h:panelGroup>
	</h:form>
</f:view>
</body>
</html>

 
welcom.jsf
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>VIEW</title>
<style type="text/css">
.table_head_css {
	text-align: center;
	padding: 5px 25px 5px 25px;
	color: #333;
	font-family: arial;
	font-weight: bold;
	font-size: 12px;
	border-top: 1px #ccc solid;
	border-bottom: 1px #ccc solid;
	background-color: #d2e8ff;
}

.table_list {
	border: 1px solid #ccc;
	border-collapse: collapse;
	text-align: center;
	width: 50%;
	font-family: Arial;
	font-size: 12px;
}

.table_column {
	border: 1px solid #ccc;
}
</style>
<script type="text/javascript">
	function display() {
		var cbOne = document.getElementById('welcome:cb1');
		if (cbOne.style.display == '') {
			cbOne.style.display = 'none';
			document.getElementById('welcome:cb2').style.display = '';
			document.getElementById('welcome:password').style.display = '';
		} else {
			cbOne.style.display = '';
			document.getElementById('welcome:cb2').style.display = 'none';
			document.getElementById('welcome:password').style.display = 'none';
			document.getElementById('welcome:password').value = "";
		}
	}
</script>
</head>
<body>
<f:view>
	<h:form id="welcome">
		<h:panelGroup layout="block"
			style="text-align:center;padding-top:100px">
			<f:verbatim><h:outputText value="#{msg.WELCOME}"/></f:verbatim>
			<h:outputText value="#{loginbean.name}"
				style="font-size: 20px;font-family: Arial;font-weight: bolder;" />
			<br>
			<br>
		
			<h:commandButton id="cb1" style="border: 1px solid #ccc;" 
				value="change password" onclick="display();return false;" >
				</h:commandButton>
			<h:inputSecret style="margin-right:10px;display:none" id="password"
				value="#{loginbean.password}" binding="#{loginbean.inputPassword}">
				<f:validateLength minimum="1" maximum="25" />
			</h:inputSecret>
			<a4j:commandButton id="cb2"
				style="border: 1px solid #ccc;display:none" immediate="true"
				actionListener="#{loginbean.changePassword}" value="submit"
				oncomplete="display();"></a4j:commandButton>
			<br>
			<br>
			<a4j:commandButton id="submit1" value="view associates"
				action="#{loginbean.view}" style="border: 1px solid #ccc;"
				limitToList="false" reRender="panel"></a4j:commandButton>
			<br>
			<br>

		</h:panelGroup>
		<a4j:outputPanel id="panel" layout="block"
			style="text-align:center;padding-left:33%;" ajaxRendered="true">
			<h:dataTable id="table" var="user" value="#{loginbean.lstUser}"
				headerClass="table_head_css" styleClass="table_list"
				columnClasses="table_column" rendered="#{loginbean.lstUser != null}"
				binding="#{loginbean.dataTable}">
				<h:column>
					<f:facet name="header">
						<h:outputText value="NAME" />
					</f:facet>
					<h:outputText value="#{user.name}" />
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText value="PHONE" />
					</f:facet>
					<h:outputText value="#{user.phone}" />
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText value="ADDRESS" />
					</f:facet>
					<h:outputText value="#{user.address}" />
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText value="DEPARTMENT" />
					</f:facet>
					<h:selectOneMenu id="select" value="#{user.department}" binding="#{loginbean.selectOneMenu}"
						valueChangeListener="#{loginbean.selectValueChange}"
						style="height: auto; width: auto; border: 1px solid #ccc;font-family: Arial;font-size: 12px;"
						onchange="this.form.submit();">
						<f:selectItems value="#{loginbean.lstDepartments}" />
					</h:selectOneMenu>
				</h:column>
			</h:dataTable>
			<h:messages layout="table" style="color:red"></h:messages>
		</a4j:outputPanel>
		<a4j:status>
			<f:facet name="start">
				<h:panelGroup style="padding-left:49%;">
					<h:graphicImage url="/ajax-loader.gif" />
				</h:panelGroup>
			</f:facet>
		</a4j:status>
	</h:form>
</f:view>
</body>
</html>

 
   jar :
  •  
  •     commons-beanutils-1.7.0.jar
  •     commons-collections.jar
  • commons-digester-1.8.jar
  • commons-logging.jar
  • jsf-api.jar
  • jsf-impl.jar
  • jstl.jar
  • ojdbc14.jar
  • richfaces-api-3.3.2.SR1.jar
  • richfaces-impl-3.3.2.SR1.jar
  • richfaces-ui-3.3.2.SR1.jar
  • spring.jar
  • tomahawk12-1.1.9.jar


  •