java開發(fā)出錯筆記.doc
java 開發(fā)出錯筆記 ---powered by jgao
1.
|
出錯描述:
struts
開發(fā)中拋出異常java.lang.IllegalArgumentException No destination bean specified
原因:
前面?zhèn)鬟f過來的表單于后面要顯示的表單不一致,或著說前面沒綁定表單,而你卻使用了如下語句:???
//
語句的作用是初始化UserForm讓UserForm的值都為空?
User user = new User();????
UserForm userForm = (UserForm)form;???? BeanUtils.copyProperties(userForm,user);
處理:
在相對應(yīng)的action里面加入attribute和name參數(shù)綁定到對應(yīng)的表單就行了
|
2.
|
出錯描述:
struts
開發(fā)中拋出異常javax.servlet.ServletException: Cannot retrieve definition for form bean null
原因:
你的頁面想跟表單綁定而你的action卻沒有綁定到表單,所以找不到相應(yīng)得表單
處理:
在相對應(yīng)的action里面加入attribute和name參數(shù)綁定到對應(yīng)的表單就行了 |
3.
|
出錯描述:
struts
開發(fā)中
The requested resource (/jgaoForum/user/userList.do) is not available.
原因:
如果你確定你的路徑絕對正確,那么看看你的web.xml是否放在webinf目錄下,在不行那么你的web.xml配置正確嗎?
???
<
servlet-name
>
action
</
servlet-name
>
???
<
servlet-class
>
org.apache.struts.action.ActionServlet
</
servlet-class
>
???
<
init-param
>
?????
<
param-name
>
config
</
param-name
>
?? //
這里路徑對嗎?
??
<
param-value
>
/WEB-INF/strutsconfig/struts-config.xml
</
param-value
>
???
</
init-param
>
?
<
servlet-mapping
>
???
<
servlet-name
>
action
</
servlet-name
>
???
<
url-pattern
>
*.do
</
url-pattern
>
//
這里是
*.do
嗎?
?
</
servlet-mapping
>
處理:
再不行我也沒辦法了
|
4.
|
出錯描述:
jsp+mysql
中文亂碼
.
原因:
編碼不匹配
處理:
1.
首先建庫和建表的時候在后面加上這句ENGINE=InnoDB DEFAULT CHARSET=gb2312
如果mysql版本有支持gb2312的話那么可以在安裝的時候選擇gb2312,默認(rèn)是lant1,這樣建庫和建表的時候就不用加上ENGINE=InnoDB DEFAULT CHARSET=gb2312了
2.
數(shù)據(jù)庫連接url要如下形式,后面要加上編碼方式
a>
直接在java代碼里面
jdbc:mysql://localhost:3306/jgaooa?useUnicode=true&characterEncoding=gb2312
b>
放在配置文件(配置文件最好是xml,并且xml文件頭也要有編碼方式<?xml version="1.0" encoding="GB2312"?>)
jdbc:mysql://localhost:3306/jgaooa?useUnicode=true&characterEncoding=gb2312
3.
每個jsp文件的文件頭要加上
<%@ page contentType="text/html;charset=gb2312" %>
不然頁面的中文會顯示亂碼
4.
頁面數(shù)據(jù)之間的傳輸request,response要加上編碼,最好的方式就是通過filter過濾器
過濾器代碼如下:該代碼由javastudio獲得
package org.jgao.soft;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
?*
中文過濾器
?*/
public class SetCharacterEncodingFilter implements Filter {
??? // ----------------------------------------------------- Instance Variables
??? /**
???
?* The default character encoding to set for requests that pass through this
???
?* filter.
???
?*/
??? protected String encoding = null;
??? /**
???
?* The filter configuration object we are associated with. If this value is
???
?* null, this filter instance is not currently configured.
???
?*/
??? protected FilterConfig filterConfig = null;
??? /**
???
?* Should a character encoding specified by the client be ignored?
???
?*/
??? protected boolean ignore = true;
??? // --------------------------------------------------------- Public Methods
??? /**
???
?* Take this filter out of service.
???
?*/
??? public void destroy() {
??????? this.encoding = null;
??????? this.filterConfig = null;
??? }
??? /**
???
?* Select and set (if specified) the character encoding to be used to
???
?* interpret request parameters for this request.
???
?*
???
?* @param request
???
?*??????????? The servlet request we are processing
???
?* @param result
???
?*??????????? The servlet response we are creating
???
?* @param chain
???
?*??????????? The filter chain we are processing
???
?*
???
?* @exception IOException
???
?*??????????????? if an input/output error occurs
???
?* @exception ServletException
???
?*??????????????? if a servlet error occurs
???
?*/
??? public void doFilter(ServletRequest request, ServletResponse response,
??????????? FilterChain chain) throws IOException, ServletException {
??????? // Conditionally select and set the character encoding to be used
??????? if (ignore || (request.getCharacterEncoding() == null)) {
??????????? String encoding = selectEncoding(request);
??????????? if (encoding != null)
??????????????? request.setCharacterEncoding(encoding);
??????? }
??????? // Pass control on to the next filter
??????? chain.doFilter(request, response);
??? }
??? /**
???
?* Place this filter into service.
???
?*
???
?* @param filterConfig
???
?*??????????? The filter configuration object
???
?*/
??? public void init(FilterConfig filterConfig) throws ServletException {
??????? this.filterConfig = filterConfig;
??????? this.encoding = filterConfig.getInitParameter("encoding");
??????? String value = filterConfig.getInitParameter("ignore");
??????? if (value == null)
??????????? this.ignore = true;
??????? else if (value.equalsIgnoreCase("true"))
??????????? this.ignore = true;
??????? else if (value.equalsIgnoreCase("yes"))
??????????? this.ignore = true;
??????? else
??????????? this.ignore = false;
??? }
??? // ------------------------------------------------------ Protected Methods
??? /**
???
?* Select an appropriate character encoding to be used, based on the
???
?* characteristics of the current request and/or filter initialization
???
?* parameters. If no character encoding should be set, return
???
?* <code>null</code>.
???
?* <p>
???
?* The default implementation unconditionally returns the value configured
???
?* by the <strong>encoding</strong> initialization parameter for this
???
?* filter.
???
?*
???
?* @param request
???
?*??????????? The servlet request we are processing
???
?*/
??? protected String selectEncoding(ServletRequest request) {
??????? return (this.encoding);
??? }
}//
Web.xml
配置文件如下
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
web-app
version
=
"2.4"
xmlns
=
"http://java.sun.com/xml/ns/j2ee"
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation
=
"http://java.sun.com/xml/ns/j2ee
??? http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
???
<
filter
>
??????
<
filter-name
>
SetCharacterEncodingFilter
</
filter-name
>
???
???
<
filter-class
>
org.jgao.soft.SetCharacterEncodingFilter
</
filter-class
>
??????
<
init-param
>
??????????
<
param-name
>
encoding
</
param-name
>
??????????
<
param-value
>
GB2312
</
param-value
>
??????
</
init-param
>
???
</
filter
>
???
<
filter-mapping
>
??????
<
filter-name
>
SetCharacterEncodingFilter
</
filter-name
>
??????
<
url-pattern
>
/*
</
url-pattern
>
???
</
filter-mapping
>
</
web-app
>
再不能搞定那就把
mysql
扔了
|
|
|
|
|
|
|