简历可假,但功夫不可假啊,兄弟!!
最近公司项目紧张,决定招一俩个熟手
招聘信息发出后收到一大堆简历
昨天两三个面试,今天三个还是四个(我们加班)
面试很简单,先是做基础题
然后是机试
我以为对有一两年工作经验的兄弟们
机试简直是 a pice of cake
然而我错了
简单的增、改都没一个做出来了
而且增改只要求写很少很少的代码
是我们在做的项目系统码表模块
就是在 action 中清掉一些代码让填空及 struts 配置文件
service 层代码都封装好了直接调用
下面将一些代码帖出来
各们看客看看是不是真的很难?
package com.xx.xx.system.webapp.action;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.lang.StringUtils;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.ActionMessage;import org.apache.struts.action.ActionMessages;import com.xx.xx.Constants;import com.xx.xx.system.model.AppCode;import com.xx.xx.system.service.AppCodeManager;import com.xx.xx.system.util.ExcelTool;import com.xx.xx.system.util.ManageHelper;import com.xx.xx.system.util.Pagination;import com.xx.xx.system.webapp.form.AppCodeForm;/** * 完成增加 删除 修改方法 * 基本方法在service层 在AppCodeManager中 * */public final class AppCodeAction extends BaseAction {public ActionForward cancel(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {return mapping.findForward("search");}/** * 删除 * @param mapping * @param form * @param request * @param response * @return * @throws Exception */public ActionForward delete(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {if (log.isDebugEnabled()) {log.debug("Entering 'delete' method");}ActionMessages messages = new ActionMessages();AppCodeForm appCodeForm = (AppCodeForm) form;String codeName =appCodeForm.getCodeName();//service层ManagerAppCodeManager appCodeMgr = (AppCodeManager) getBean("appCodeManager");;// TODO 调用service层 根据Id 删除appCode//appCode = appCodeMgr.messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("appCode.deleted",codeName));// save messages in session, so they'll survive the redirectsaveMessages(request.getSession(), messages);return mapping.findForward("search");}/** * 修改或增加 * @param mapping * @param form * @param request * @param response * @return * @throws Exception */public ActionForward edit(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {if (log.isDebugEnabled()) {log.debug("Entering 'edit' method");}AppCodeForm appCodeForm = (AppCodeForm) form;AppCode appCode = new AppCode();if (StringUtils.isNotEmpty(appCodeForm.getId())) {//service层ManagerAppCodeManager appCodeMgr = (AppCodeManager) getBean("appCodeManager");// TODO 调用service层 根据Id 查询得到appCode实例//appCode = appCodeMgr.//po 转换成 formappCodeForm = (AppCodeForm) convert(appCode);updateFormBean(mapping, request, appCodeForm);}return mapping.findForward("edit");}/** * 保存方法 * @param mapping * @param form * @param request * @param response * @return * @throws Exception */public ActionForward save(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {if (log.isDebugEnabled()) {log.debug("Entering 'save' method");}// Extract attributes and parameters we will needActionMessages messages = new ActionMessages();AppCodeForm appCodeForm = (AppCodeForm) form;boolean isNew = StringUtils.isEmpty(appCodeForm.getId());String codeName =appCodeForm.getCodeName();//service层ManagerAppCodeManager appCodeMgr = (AppCodeManager) getBean("appCodeManager"); //Form 转换成poAppCode appCode = (AppCode) convert(appCodeForm);// TODO 保存调用service层 保存实例方法//appCode = appCodeMgr.// add success messagesif (isNew) {messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("appCode.added",codeName));// save messages in session to survive a redirectsaveMessages(request.getSession(), messages);return mapping.findForward("search");} else {messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("appCode.updated",codeName));saveMessages(request, messages);return mapping.findForward("edit");}}/** * 查询 * @param mapping * @param form * @param request * @param response * @return * @throws Exception */public ActionForward search(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {if (log.isDebugEnabled()) {log.debug("Entering 'search' method");}AppCodeForm appCodeForm = (AppCodeForm) form;AppCode appCode = (AppCode) convert(appCodeForm);Pagination pagination = getPagination(request);AppCodeManager appCodeMgr = (AppCodeManager) getBean("appCodeManager");pagination.setSearchId(Constants.APPCODE_LIST);//查询List appCodes = appCodeMgr.getAppCodesByQuery(appCode, pagination);request.setAttribute(Constants.RESULT_SIZE_KEY, pagination.getFullListSize());request.setAttribute(Constants.APPCODE_LIST, appCodes);return mapping.findForward("list");}public ActionForward unspecified(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {return search(mapping, form, request, response);}/** * 查看方法 * @param mapping * @param form * @param request * @param response * @return * @throws Exception */public ActionForward view(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {if (log.isDebugEnabled()) {log.debug("Entering 'view' method");}AppCodeManager appCodeMgr = (AppCodeManager) getBean("appCodeManager");return mapping.findForward("view");}}
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"><struts-config><!-- ========== Data Sources Definitions =================================== --><!--Define your Struts data sources in a file called struts-data-sources.xml and placeit in your merge directory.--><!-- ========== Form Bean Definitions =================================== --><form-beans><form-bean name="roleForm"type="com.xx.xx.system.webapp.form.RoleForm" /><form-bean name="userForm"type="com.xx.xx.system.webapp.form.UserForm" /><form-bean name="addressForm"type="com.xx.xx.system.webapp.form.AddressForm" /><form-bean name="appNumberForm"type="com.xx.xx.system.webapp.form.AppNumberForm" /><form-bean name="appDepartmentForm"type="com.xx.xx.system.webapp.form.AppDepartmentForm" /><form-bean name="appCodeForm"type="com.xx.xx.system.webapp.form.AppCodeForm" /><form-bean name="appOrganizationForm"type="com.xx.xx.system.webapp.form.AppOrganizationForm" /> <form-bean name="addCodeForm" type="com.xx.struts.form.AddCodeForm" /> </form-beans><!-- ========== Global Exceptions Definitions =================================== --><global-exceptions><exception type="java.lang.Exception" key="errors.general"handler="com.xx.xx.system.webapp.action.ActionExceptionHandler" /></global-exceptions><!-- ========== Global Forward Definitions =================================== --><global-forwards><forward name="mainMenu" path="/mainMenu.html" redirect="true" /><!-- Forwards specified in actions --><forward name="addUser"path="/system/editUser.html?method=Add&amp;from=list"redirect="true" /><forward name="cancelUser"path="/system/editUser.html?method=Cancel" /><forward name="deleteUser"path="/system/editUser.html?method=Delete" /><forward name="updateUser" path="/system/userProfile.html" /><!-- Forwards for links used in Menu --><forward name="editProfile" path="/system/editProfile.html" /><forward name="editUser" path="/system/editUser.html" /><forward name="viewUsers" path="/system/users.html"redirect="true" /><forward name="selectFile" path="/s.electFile.html" /><forward name="logout" path="/logout.jsp" /></global-forwards><!-- ========== Action Mapping Definitions =================================== --><action-mappings><!-- 这是用户编码的设置 完成增减 删除 修改 工作 注意 action web.xml servlet-mapping配置 过滤的是*.html后缀名 查询列表action path已经配置完成 其他参照查询列表--><action path="/system/appCodes"type="com.xx.xx.system.webapp.action.AppCodeAction"name="appCodeForm" scope="session" input="mainMenu"parameter="method" unknown="false" validate="false"><set-property property="cancellable" value="true" /><forward name="list" path="/system/appCodeList.jsp"redirect="false" /><forward name="search" path="/system/appCodes.html"redirect="true" /></action><!-- 修改增加配置--><action path=""type="com.xx.xx.system.webapp.action.AppCodeAction"name="appCodeForm" scope="request" input="list" parameter="method"unknown="false" validate="false"><set-property property="cancellable" value="true" /></action><!-- 查看页面配置--><action path=""type=""name="" scope="request" input="edit" parameter="method"unknown="false" validate="false"><set-property property="cancellable" value="true" /></action><!-- 删除页面配置--><action path=""type=""name="" scope="request" input="list" parameter="method"unknown="false" validate="false"><set-property property="cancellable" value="true" /></action><!-- 以下可以作为示例 --><action path="/system/appDepartments"type="com.xx.xx.system.webapp.action.AppDepartmentAction"name="appDepartmentForm" scope="request" input="mainMenu"parameter="method" unknown="false" validate="false"><set-property property="cancellable" value="true" /><forward name="edit" path="/system/appDepartmentForm.jsp"redirect="false" /><forward name="view" path="/system/viewAppDepartment.jsp"redirect="false" /><forward name="list" path="/system/appDepartmentList.jsp"redirect="false" /><forward name="search" path="/system/appDepartments.html"redirect="true" /><forward name="viewer" path="/system/viewAppDepartment.html"redirect="true" /></action><action path="/system/editAppDepartment"type="com.xx.xx.system.webapp.action.AppDepartmentAction"name="appDepartmentForm" scope="request" input="list"parameter="method" unknown="false" validate="false"><set-property property="cancellable" value="true" /><forward name="edit" path="/system/appDepartmentForm.jsp"redirect="false" /><forward name="view" path="/system/viewAppDepartment.jsp"redirect="false" /><forward name="list" path="/system/appDepartmentList.jsp"redirect="false" /><forward name="search" path="/system/appDepartments.html"redirect="true" /><forward name="viewer" path="/system/viewAppDepartment.html"redirect="true" /></action><action path="/system/saveAppDepartment"type="com.xx.xx.system.webapp.action.AppDepartmentAction"name="appDepartmentForm" scope="request" input="edit"parameter="method" unknown="false" validate="false"><set-property property="cancellable" value="true" /><forward name="edit" path="/system/appDepartmentForm.jsp"redirect="false" /><forward name="view" path="/system/viewAppDepartment.jsp"redirect="false" /><forward name="list" path="/system/appDepartmentList.jsp"redirect="false" /><forward name="search" path="/system/appDepartments.html"redirect="true" /><forward name="viewer" path="/system/viewAppDepartment.html"redirect="true" /></action><action path="/system/viewAppDepartment"type="com.xx.xx.system.webapp.action.AppDepartmentAction"name="appDepartmentForm" scope="request" input="list"parameter="method" unknown="false" validate="false"><set-property property="cancellable" value="true" /><forward name="edit" path="/system/appDepartmentForm.jsp"redirect="false" /><forward name="view" path="/system/viewAppDepartment.jsp"redirect="false" /><forward name="list" path="/system/appDepartmentList.jsp"redirect="false" /><forward name="search" path="/system/appDepartments.html"redirect="true" /><forward name="viewer" path="/system/viewAppDepartment.html"redirect="true" /></action><action path="/system/deleteAppDepartment"type="com.xx.xx.system.webapp.action.AppDepartmentAction"name="appDepartmentForm" scope="request" input="list"parameter="method" unknown="false" validate="false"><set-property property="cancellable" value="true" /><forward name="edit" path="/system/appDepartmentForm.jsp"redirect="false" /><forward name="view" path="/system/viewAppDepartment.jsp"redirect="false" /><forward name="list" path="/system/appDepartmentList.jsp"redirect="false" /><forward name="search" path="/system/appDepartments.html"redirect="true" /><forward name="viewer" path="/system/viewAppDepartment.html"redirect="true" /></action><!-- 用户单位--><action path="/system/appOrganizations"type="com.xx.xx.system.webapp.action.AppOrganizationAction"name="appOrganizationForm" scope="request" input="mainMenu"parameter="method" unknown="false" validate="false"><set-property property="cancellable" value="true" /><forward name="edit" path="/system/appOrganizationForm.jsp"redirect="false" /><forward name="view" path="/system/viewAppOrganization.jsp"redirect="false" /><forward name="list" path="/system/appOrganizationList.jsp"redirect="false" /><forward name="search" path="/system/appOrganizations.html"redirect="true" /><forward name="viewer"path="/system/viewAppOrganization.html" redirect="true" /></action><!-- 选择单位包括的用户--><action path="/api/appOrganizations"type="com.xx.xx.system.webapp.action.AppOrganizationAction"name="appOrganizationForm" scope="request" input="mainMenu"parameter="method" unknown="false" validate="false"><set-property property="cancellable" value="true" /><forward name="list" path="/test.jsp"redirect="false" /></action><action path="/system/editAppOrganization"type="com.xx.xx.system.webapp.action.AppOrganizationAction"name="appOrganizationForm" scope="request" input="list"parameter="method" unknown="false" validate="false"><set-property property="cancellable" value="true" /><forward name="edit" path="/system/appOrganizationForm.jsp"redirect="false" /><forward name="view" path="/system/viewAppOrganization.jsp"redirect="false" /><forward name="list" path="/system/appOrganizationList.jsp"redirect="false" /><forward name="search" path="/system/appOrganizations.html"redirect="true" /><forward name="viewer"path="/system/viewAppOrganization.html" redirect="true" /></action><action path="/system/saveAppOrganization"type="com.xx.xx.system.webapp.action.AppOrganizationAction"name="appOrganizationForm" scope="request" input="edit"parameter="method" unknown="false" validate="false"><set-property property="cancellable" value="true" /><forward name="edit" path="/system/appOrganizationForm.jsp"redirect="false" /><forward name="view" path="/system/viewAppOrganization.jsp"redirect="false" /><forward name="list" path="/system/appOrganizationList.jsp"redirect="false" /><forward name="search" path="/system/appOrganizations.html"redirect="true" /><forward name="viewer"path="/system/viewAppOrganization.html" redirect="true" /></action><action path="/system/viewAppOrganization"type="com.xx.xx.system.webapp.action.AppOrganizationAction"name="appOrganizationForm" scope="request" input="list"parameter="method" unknown="false" validate="false"><set-property property="cancellable" value="true" /><forward name="edit" path="/system/appOrganizationForm.jsp"redirect="false" /><forward name="view" path="/system/viewAppOrganization.jsp"redirect="false" /><forward name="list" path="/system/appOrganizationList.jsp"redirect="false" /><forward name="search" path="/system/appOrganizations.html"redirect="true" /><forward name="viewer"path="/system/viewAppOrganization.html" redirect="true" /></action><action path="/system/deleteAppOrganization"type="com.xx.xx.system.webapp.action.AppOrganizationAction"name="appOrganizationForm" scope="request" input="list"parameter="method" unknown="false" validate="false"><set-property property="cancellable" value="true" /><forward name="edit" path="/system/appOrganizationForm.jsp"redirect="false" /><forward name="view" path="/system/viewAppOrganization.jsp"redirect="false" /><forward name="list" path="/system/appOrganizationList.jsp"redirect="false" /><forward name="search" path="/system/appOrganizations.html"redirect="true" /><forward name="viewer"path="/system/viewAppOrganization.html" redirect="true" /></action><!-- Forwards to the mainMenu tile definition --><!-- type="com.xx.xx.system.webapp.action.MainMenuAction"--><action path="/mainMenu"type="org.apache.struts.actions.ForwardAction"parameter="/index.jsp" /><action path="/system/changePassword"type="org.apache.struts.actions.ForwardAction"parameter="/WEB-INF/pages/changePassword.jsp" /><action path="/system/users"type="com.xx.xx.system.webapp.action.UserAction"name="userForm" scope="request" input="mainMenu" roles="admin"parameter="method" unknown="false" validate="false"><forward name="list" path="/WEB-INF/pages/userList.jsp"redirect="false" /><forward name="edit" path="/WEB-INF/pages/userForm.jsp"redirect="false" /></action><action path="/system/editUser"type="com.xx.xx.system.webapp.action.UserAction"name="userForm" scope="request" input="list" roles="admin"parameter="method" unknown="false" validate="false"><forward name="list" path="/WEB-INF/pages/userList.jsp"redirect="false" /><forward name="edit" path="/WEB-INF/pages/userForm.jsp"redirect="false" /></action><action path="/system/editPass"type="com.xx.xx.system.webapp.action.UserAction"name="userForm" scope="request" input="mainMenu" parameter="method"unknown="false" validate="false"><forward name="list" path="/WEB-INF/pages/userList.jsp"redirect="false" /><forward name="edit"path="/WEB-INF/pages/changePassword.jsp" redirect="false" /></action><action path="/system/editProfile"type="com.xx.xx.system.webapp.action.UserAction"name="userForm" scope="request" input="mainMenu" parameter="method"unknown="false" validate="false"><forward name="list" path="/WEB-INF/pages/userList.jsp"redirect="false" /><forward name="edit" path="/WEB-INF/pages/userForm.jsp"redirect="false" /><forward name="editPass"path="/WEB-INF/pages/changePassword.jsp" redirect="false" /></action><action path="/system/saveUser"type="com.xx.xx.system.webapp.action.UserAction"name="userForm" scope="request" input="edit" parameter="method"unknown="false" validate="false"><forward name="list" path="/WEB-INF/pages/userList.jsp"redirect="false" /><forward name="edit" path="/WEB-INF/pages/userForm.jsp"redirect="false" /><forward name="editPass"path="/WEB-INF/pages/changePassword.jsp" redirect="false" /></action></action-mappings><controller nocache="true" inputForward="true" maxFileSize="2M" /><message-resources parameter="ApplicationResources" /><!-- ========== Validator plugin =================== --><plug-in className="org.apache.struts.validator.ValidatorPlugIn"><set-property property="pathnames"value="/WEB-INF/validator-rules.xml, /WEB-INF/validator-rules-custom.xml, /WEB-INF/validation.xml" /></plug-in></struts-config>