LoginAction.java
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.sb.mmg.struts.action;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.validator.DynaValidatorForm;import com.sb.mmg.db.UsertabDAO;/** 
 * MyEclipse Struts
 * Creation date: 02-29-2008
 * 
 * XDoclet definition:
 * @struts.action path="/login" name="loginForm" input="/index.jsp" scope="request" validate="true"
 */
public class LoginAction extends Action {
private UsertabDAO userdao; /*
 * Generated Methods
 */ /**
 * @return userdao
 */
public UsertabDAO getUserdao() {
return userdao;
} /**
 * @param userdao 的设定的 userdao
 */
public void setUserdao(UsertabDAO userdao) {
this.userdao = userdao;
} /** 
 * Method execute
 * @param mapping
 * @param form
 * @param request
 * @param response
 * @return ActionForward
 */
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DynaValidatorForm loginForm = (DynaValidatorForm) form;// TODO Auto-generated method stub
System.out.println("sdafsadfasd");
String username = loginForm.getString("username");
String password = loginForm.getString("password");
System.out.println(username);
System.out.println(password);
if(userdao.isValidUser(username, password)){
return mapping.findForward("indexGo");
} else {
return mapping.getInputForward();
}
}
}
UsertabDAO.java
package com.sb.mmg.db;import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.LockMode;
import org.springframework.context.ApplicationContext;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;/**
 * Data access object (DAO) for domain model class Usertab.
 * @see com.sb.mmg.db.Usertab
 * @author MyEclipse - Hibernate Tools
 */
public class UsertabDAO extends HibernateDaoSupport {    private static final Log log = LogFactory.getLog(UsertabDAO.class);
    
    private static String hql = "from Usertab u where u.username = ? and password = ?"; //property constants
public static final String USERNAME = "username";
public static final String PASSWORD = "password"; protected void initDao() {
//do nothing
}

public boolean isValidUser(String username,String password){
System.out.println("in UsertabDAO IsValid");
String[] userlist = new String[2];
userlist[0] = username;
userlist[1] = password;
//List userList = this.getHibernateTemplate().find(hql,(object)username);
List userList = this.getHibernateTemplate().find(hql,userlist);
if(userList.size() == 0){
return true;
}
return false;
}
//此处部分代码省去,
public static UsertabDAO getFromApplicationContext(ApplicationContext ctx) {
     return (UsertabDAO) ctx.getBean("UsertabDAO");
}
}
Usertab.java
package com.sb.mmg.db;import org.apache.struts.validator.ValidatorActionForm;
/**
 * Usertab generated by MyEclipse - Hibernate Tools
 */public class Usertab  extends ValidatorActionForm implements java.io.Serializable {
    // Fields         private Integer id;
     private String username;
     private String password;
    // Constructors    /** default constructor */
    public Usertab() {
    }    
    /** full constructor */
    public Usertab(String username, String password) {
        this.username = username;
        this.password = password;
    }   
    // Property accessors    public Integer getId() {
        return this.id;
    }
    
    public void setId(Integer id) {
        this.id = id;
    }    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;
    }
}
index.jsp
<%@ page language="java" pageEncoding="BIG5"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%> 
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
 
<html> 
<head>
<title><bean:message key="loginform.title"/></title>
</head>
<body>
<html:form action="/login">
     username: <html:text property="username"></html:text><html:errors property="username" /><br/>
     password: <html:password property="password"></html:password><html:errors property="password" /><br/>
     <html:submit></html:submit><html:cancel></html:cancel> 
</html:form>
</body>
</html>

解决方案 »

  1.   

    哥们,你不是让我替你整个看代码吧!!!我可没有那么多时间,特别是白天!
    其它人如果有时间,先帮一下吧!!还有,你把你的问题提上来,什么异常,报什么错误?我们不是编译器,更不是Tomcat, 贴上来,也省大家一点时间!
      

  2.   

    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Missing message for key "loginform.title"
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause javax.servlet.ServletException: Missing message for key "loginform.title"
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:94)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause javax.servlet.jsp.JspException: Missing message for key "loginform.title"
    org.apache.struts.taglib.bean.MessageTag.doStartTag(MessageTag.java:233)
    org.apache.jsp.index_jsp._jspx_meth_bean_005fmessage_005f0(index_jsp.java:110)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:77)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.25 logs.
      

  3.   

    loginform.title ??
    你的那个properties 文件放错地方了吧!
    这个错误是tag的问题,而且是国际化的问题。 你看一下吧!
    放到
    WEB-INF/
    WEB-INF/classes这2个下面看看!
      

  4.   


    我在sturts-config.xml中已指定了properties的位置,我在以前的项目中这样做是可以的啊
    <message-resources parameter="com.sb.mmg.struts.ApplicationResources.properties" />我改改看
      

  5.   

    另外一個問題:
    LoginAction.java
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    //MoldUserm loginform = (MoldUserm)form;// TODO Auto-generated method stub        MoldUserm loginForm = (MoldUserm) form;

            HttpSession session = request.getSession();
            String username = null;
            String password = null;
            String kind = null;  
            username = (String)loginForm.getUserNo();
            password = (String)loginForm.getUserPawd();
            kind = (String)loginForm.getTMisNo();
            MoldUsermDAO userdao = new MoldUsermDAO();
            userdao.validate(username, password);
    }
    MoldUsermDAO.java
    public MoldUserm validate(String username,String password) {
            log.debug("getting MoldUserm validate");
            try {
             System.out.println(username);
             System.out.println(password);
             List list=this.getHibernateTemplate().find("from MoldUserm");
             System.out.println("this is test3");
                return null;
            } catch (RuntimeException re) {
                log.error("get failed", re);
                throw re;
            }
        }
     
    能打印出validate中傳入的username和 password的值,
    但不能執行
    System.out.println("this is test3");
    問題應該出在List list=this.getHibernateTemplate().find("from MoldUserm");請問getHibernateTemplate()要如何用,是不是還在那個配置文件中註冊什麼東西,如何做?
    謝謝!
       
      

  6.   

    最后的那个getHibernateTemplate() 我也有点 迷惑。 我会用生出来的,但是自己写的HibernateTemplate就出问题了。
    能给出个简单的例子和详解释不?
    谢谢 牛X人。
      

  7.   

    其实只要把applicationContext.xml配置对了,就可以顺利查询数据了,
    List list=this.getHibernateTemplate().find("from MoldUserm"); 
    此句执行成功了,但我不能把里面的数据读出来,请高手给段详细代码?
    万分感谢!
      

  8.   

    应该是你的配件文件有问题,注意大小,我以前也犯过同样的错,
    我传个SSH的项目给你参考参考。