在applicationContext.xml中加入下句,掃描@Respository @Service @Controller
<context:component-scan base-package="com.base.*" />
以登陸login爲例說明
@Controller("accountsController")
public class AccountsController extends BaseAction {
//BaseAction 已經繼承了 ActionSupport
@Resource
AccountsService accountsService;
public String login() throws Exception {
String username = ServletActionContext.getRequest().getParameter("username");
String password = ServletActionContextgetRequest().getParameter("password");
Accounts accounts = accountsService.getAccountByUsername(username);
System.out.println("PASSWORD:" + accounts.getPassword());
return "SUCCESS";
}
}
@Service("accountsService")
@Lazy(true)
public class AccountsServiceImpl extends BaseServiceImpl<Accounts> implements AccountsService{
protected AccountsDao accountsDao;
@Resource
public void setAccountsDao(AccountsDao accountsDao) {
this.accountsDao = accountsDao;
super.baseDao = accountsDao;
}
@Override
public Accounts getAccountByUsername(String username) {
List<Accounts> list = accountsDao.getObjectsByQuery("AND a.username = '" + username +"'");
return list.get(0);
}
}
@Repository
public class AccountsDaoImpl extends BaseDaoImpl<Accounts> implements AccountsDao{
AccountsDaoImpl() {
super(Accounts.class);<span style="white-space:pre"> // (Class<T> )entityClass = <span style="font-family: Arial, Helvetica, sans-serif;">Accounts.class</span>
}
}
接下來是struts.xml的action配置,action的class是@Controller("accountsController"),method="login"是這個類中的方法
<package name="LoginActionPackage" namespace="/LoginManager" extends="struts-default">
<action name="user_login" class="accountsController" method="login">
<result name="success">/home.jsp</result>
<result name="error">/login.jsp</result>
</action>
</package>
然後是前臺的登錄請求
<form action="LoginManager/user_login.action" id="loginForm" method="post">
<ol>
<li><input type="text" name="username" id="username"/></li>
<li><input type="password" name="password" id="password"/></li>
<li><input type="submit" id="loginBtn" value="login"/></li>
</ol>
</form>