在上次的MVC基础上,我们准备给Controller增加Model,为此创建一个Account Bean Class:
public class Account implements java.io.Serializable { private String username; private String password;
public String getUsername() { return this.username; } public void setUsername(String username) { this.username = username; }
public String getPassword() { return this.password; } public void setPassword(String password) { this.password = password; } }
然后修改SpringappController:
public class SpringappController implements Controller { private Account account; public Account getUserAccount() { return this.account; } public void setUserAccount(Account account) { this.account = account; }
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { return new ModelAndView("view.jsp", "model", account.getUsername()); } }
为了向SpringappController注入Bean,我们修改配置文件springapp-servlet.xml:
<!-- 申明一个Account Bean --> <bean id="adminAccount" class="Account"> <property name="username"> <value>administrator</value> </property> <property name="password"> <value>1234567</value> </property> </bean> <bean id="springappController" class="SpringappController"> <!-- 注入到Controller --> <property name="userAccount"> <ref bean="adminAccount" /> </property> </bean>
OK,运行Ant,然后启动Tomcat,结果输出:
Result: administrator
注入成功!但是在Controller中放一个Account肯定是不合逻辑的,我们准备做一个用户登录功能,为此创建一个AccountManager Bean:
public class AccountManager implements java.io.Serializable { Account getAccount(String username, String password) { // TODO... Account account = new Account(); account.setUsername(username); account.setPassword(password); return account; } }
然后把SpringappController改为:
public class SpringappController implements Controller { private AccountManager manager; public AccountManager getManager() { return this.manager; } public void setManager(AccountManager manager) { this.manager = manager; }
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); return new ModelAndView("view.jsp", "model", manager.getAccount(username, password).getUsername()); } }
修改springapp-servlet.xml:
<bean id="accountManager" class="AccountManager" /> <bean id="springappController" class="SpringappController"> <property name="manager"> <ref bean="accountManager" /> </property> </bean>
编译,运行,输入:http://localhost:8080/springmvc/hello.c?username=xuefeng&password=1234
结果显示:
Result: xuefeng
OK,现在只要创建一个html form,Post到Controller然后在AccountManager中验证Username和Password就可以了。 
|