我們在學校項目中有jsp格式的變音符號問題。我們使用Spring 3.0。在JSP表單中,我們有可以包含帶有重音符(捷克語,f.e「šáříěá」)的單詞的輸入。當我開始項目並在這些輸入中寫入變音詞併發送表單時,控制器中立即出現錯誤的值。變音字母有奇怪的形式,例如「Ä???Ä」。 以下代碼是我們的形式。jsp格式的變音符號
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Nový prostor</title>
</head>
<body>
<h1>Nový prostor</h1>
<form:form method="POST" commandName="PLACE" >
<fieldset>
<legend>Adresa prostoru</legend>
<table>
<tr>
<td><form:label path="name">Název prostoru</form:label></td>
<td><form:input path="name" /></td>
</tr>
<tr>
<td><form:label path="street">Ulice a č.p.</form:label></td>
<td><form:input path="street" /></td>
</tr>
<tr>
<td><form:label path="zip_code">PSČ</form:label></td>
<td><form:input path="zip_code" /></td>
</tr>
<tr>
<td><form:label path="city">Město</form:label></td>
<td><form:input path="city" /></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>Parametry prostoru</legend>
<table>
<tr>
<td><form:label path="rows">Počet řad</form:label></td>
<td><form:input path="rows" /></td>
</tr>
<tr>
<td><form:label path="columns">Počet sedaček v řadě</form:label></td>
<td><form:input path="columns" /></td>
</tr>
<tr>
<td><form:label path="note">Poznámky</form:label></td>
<td><form:textarea path="note" /></td>
</tr>
</table>
</fieldset>
<input type="submit" value="Vytvořit">
</form:form>
</body>
這是電腦板:
@Controller
@RequestMapping("/newPlace")
public class NewPlaceController {
@Autowired
private PlaceService placeService;
/**
* Pri pozadavku typu get vrati nazev jsp ktere se ma renderovat, nabinduje Complex place do formualre
* @param model
* @return
*/
@RequestMapping(method=RequestMethod.GET)
public String showNewPlaceForm(Model model){
model.addAttribute("PLACE", new ComplexPlace());
return "newPlaceForm";
}
/**
*Pri pozadavku POST ulozi data z formulare do DB
*
* @param place
* @param result
* @return
*/
@RequestMapping(method=RequestMethod.POST)
public String createNewPlace(@ModelAttribute(value="PLACE") ComplexPlace place, BindingResult result){
System.out.println(place.getName());
placeService.buildPlaceService(place);
placeService.PersistNewPlace();
return "/index";
}
}
的System.out.println寫在控制檯上奇怪的值。知道有人問題在哪裏?我想說一句,我們對Java Web編程有很小的看法。 感謝
你是否堅持這個值到數據庫?如果是,那麼檢查數據庫中的值是否正確,因爲'System.out'可能不會以UTF-8打印它們。你還使用了什麼應用程序服務器? –
是的,數據是持久的。我們使用Hibernate。 Applicaton服務器是GlassFish 3+。數據庫中的數據也是錯誤的。但數據庫中的變音符值與控制檯中的不同,但也是錯誤的。是可能的,數據庫的設置是錯誤的,我們必須修復它。但我不知道爲什麼在控制檯中是錯誤的文字。我必須嘗試在文本文件中保存值,如果有可能System.out.println()不能打印UTF-8。 –
其實你不需要控制檯,對吧?你只是用它來檢查值?如果是這樣,那麼忘掉控制檯並修復你的數據庫編碼。 –