现在java Web开发主流的框架SSH中 实现零配置的XML  出现注解  。   
    最近在研究Struts2的注解问题,一下 步骤:
    1.添加JAR包struts2-convention-plugin-2.2.3.jar
    2.调用了。其实 只要在action中配置就行了其他的地方都不用配。实例:
package cn.fs.action;import java.util.ArrayList;
import java.util.List;import javax.annotation.Resource;import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.springframework.stereotype.Component;import cn.common.model.JQ_login;
import cn.fs.service.loginService;import com.opensymphony.xwork2.ActionSupport;@SuppressWarnings("serial")
@Namespace("/login")
@Results( { @Result(name = "addlogin", location = "/login.jsp"),
@Result(name = "login", location = "/login/listlogin.action",type="redirect"),
@Result(name = "err", location = "/login.jsp"),
@Result(name = "listlogin", location = "/WEB-INF/jsp/login/list.jsp") })
@Component("loginAction")
public class loginAction extends ActionSupport { private loginService loginService; private String msg; private JQ_login jqlogin; private List<JQ_login> listJQ; public List<JQ_login> getListJQ() {
return listJQ;
} public void setListJQ(List<JQ_login> listJQ) {
this.listJQ = listJQ;
} public String getMsg() {
return msg;
} public void setMsg(String msg) {
this.msg = msg;
} public JQ_login getJqlogin() {
return jqlogin;
} public void setJqlogin(JQ_login jqlogin) {
this.jqlogin = jqlogin;
} public loginService getLoginService() {
return loginService;
} @Resource(name = "loginServiceImpl")
public void setLoginService(loginService loginService) {
this.loginService = loginService;
} @Action("addlogin")
public String addLogin() {
System.out.println("----执行----");
loginService.addlogin(jqlogin);
System.out.println("----完毕----");
return "addlogin";
} @Action("login")
public String login() {
System.out.println("userName:"+jqlogin.getUserName());
System.out.println("password:"+jqlogin.getPassword());
if(jqlogin.equals(null)){
msg = "用户名和密码不能为空!";
return "err";
}
if (jqlogin.getUserName().equals(null) || jqlogin.getUserName().trim()=="") {
msg = "用户名不能为空!";
return "err";
} if (jqlogin.getPassword().equals(null) || jqlogin.getPassword().trim()=="") {
msg = "用户名不能为空!";
return "err";
} JQ_login jq_login = new JQ_login();
List<JQ_login> list=new ArrayList<JQ_login>();
list = loginService.getLogin(jqlogin.getUserName());
if(list.size()==0){
msg="不存在该用户请注册!";
return "err";
}
jq_login=list.get(0);
if (jq_login == null
|| !jq_login.getPassword().equals(jqlogin.getPassword())) {
msg = "用户名或者密码出错!";
return "err";
}
return "login";
} @Action("listlogin")
public String listlogin() { listJQ = loginService.listlogin();
if (listJQ == null) {
msg = "没有用户信息!";
}
return "listlogin";
}
}