Jsp 如何使用Spring4 MVC对印地语数据执行CRUD操作?
我想用Spring4MVC和MySql数据库制作一个印地语的小网站。当我试图将印地语文本存储到数据库中时,它会像'a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨aराकेश मुकेश महेश'. 我该怎么做 我的项目配置和编码如下Jsp 如何使用Spring4 MVC对印地语数据执行CRUD操作?,jsp,spring-mvc,utf-8,character-encoding,Jsp,Spring Mvc,Utf 8,Character Encoding,我想用Spring4MVC和MySql数据库制作一个印地语的小网站。当我试图将印地语文本存储到数据库中时,它会像'a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨a¨aराकेश मुकेश महेश'. 我该怎么做 我的项目配置和编码如下 public class AppConfig extends WebMvcConfigurerAdapter { @Bean public ViewResolver vie
public class AppConfig extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setContentType("text/html;charset=UTF-8");
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("messages");
return messageSource;
}
@Bean
public CommonsMultipartResolver multipartResolver() {
CommonsMultipartResolver resolver=new CommonsMultipartResolver();
resolver.setDefaultEncoding("utf-8");
return resolver;
}
@Bean
public StringHttpMessageConverter stringHttpMessageConverter() {
return new StringHttpMessageConverter(Charset.forName("UTF-8"));
}
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/css/**")
.addResourceLocations("/css/");
registry.addResourceHandler("/images/**")
.addResourceLocations("/images/");
registry.addResourceHandler("/js/**")
.addResourceLocations("/js/");
registry.addResourceHandler("/uploadedContents/**")
.addResourceLocations("/uploadedContents/");
registry.addResourceHandler("/fonts/**")
.addResourceLocations("/fonts/");
}
}
AddCard.jsp
<head>
<title>Marriage-Card | Add new marriage card</title>
<!-- for-mobile-apps -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="#" />
<head>... </head>
<body>
<section id="main_container" style="min-height: 1024px;">
<div id="job_post_panel" class="panel panel-primary">
<div class="panel-heading">नया निमंत्रण कार्ड बनायें ...</div>
<form:form action="addCard" method="post" commandName="card" id="job_post"
name="job_post">
<table class="input-container">
<tbody>
<tr>
<td class="column-name"><form:label path="marriageVanue"> स्थान</form:label>
<td class="input-text"><form:input path="marriageVanue"
class="text" placeholder="स्थान भरें ..." />
</tr>
<tr>
<td class="column-name"><form:label path="darshanAbhilashi"> दर्शनाभिलाषी</form:label>
<td class="input-text"><form:input type="text" class="text"
path="darshanAbhilashi" placeholder="दर्शनाभिलाषी भरें ..." />
</tr>
<tr>
<td class="column-name"><form:label path="swagatUtsuk">स्वागतोत्सुक</form:label>
<td class="input-text"><form:input type="text" class="text"
path="swagatUtsuk" placeholder="स्वागतोत्सुक के नाम भरें ..." />
</tr>
<tr>
<td class="column-name"><form:label path="vinit">विनीत</form:label>
<td class="input-text"><form:input type="text" class="text"
path="vinit" placeholder="विनीत के नाम भरें ..." />
</tr>
<tr>
<td class="btn-row" colspan="2"><input class="btn-submit"
type="submit" value="Submit" /></td>
</tr>
</tbody>
</table>
</form:form>
</div>
</section>
</body>
<html>
结婚卡|添加新的结婚卡
...
नया निमंत्रण कार्ड बनायें ...
स्थान
दर्शनाभिलाषी
स्वागतोत्सुक
विनीत
输入数据:
存储在数据库中的数据
添加Servlet筛选器以指定请求的字符编码。这可能是你的问题 e、 g
您如何查看存储在数据库中的数据?什么节目?它有编码选项吗?换句话说:根据这个问题,似乎您在数据库中正确地存储了UTF-8数据,因此没有问题。但您需要修复数据库客户端才能正确查看。我正在使用MySQL Workbench 5.2查看存储的数据,我已经为数据库选择了“utf8\u general\u ci”编码选项。嘿,如果我使用RequestMethod.GET,那么它可以正常工作,但使用POST方法则无法正常工作,我如何解决此问题?最后我找到了解决方案,问题是关于tomcat服务器配置的。我已经使用此链接编辑了服务器>tomcat v8.x>web.xml是的,它正在工作,谢谢@Tim Mickelson,但是有没有没有没有xml编码的替代解决方案?我用一个示例更新了我的答案,说明了如何在Java@配置中注册过滤器。我没有测试过,但你应该按照这个方向去做。
public class CardOperationController {
@Autowired
private CardService cardService;
@RequestMapping(value = "addCard.html", method = RequestMethod.GET)
public String getAddNewCardPage(Model model){
model.addAttribute("card", new MarriageCard());
return "AddNewCard";
}
@RequestMapping(value="addCard",method=RequestMethod.POST,produces = "text/plain;charset=UTF-8")
public String addNewCard(@ModelAttribute("card")MarriageCard card,Model model,HttpServletRequest request){
// method to persist card details..
cardService.addNewCard(card);
return "AddNewCard";
}
}
<head>
<title>Marriage-Card | Add new marriage card</title>
<!-- for-mobile-apps -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="#" />
<head>... </head>
<body>
<section id="main_container" style="min-height: 1024px;">
<div id="job_post_panel" class="panel panel-primary">
<div class="panel-heading">नया निमंत्रण कार्ड बनायें ...</div>
<form:form action="addCard" method="post" commandName="card" id="job_post"
name="job_post">
<table class="input-container">
<tbody>
<tr>
<td class="column-name"><form:label path="marriageVanue"> स्थान</form:label>
<td class="input-text"><form:input path="marriageVanue"
class="text" placeholder="स्थान भरें ..." />
</tr>
<tr>
<td class="column-name"><form:label path="darshanAbhilashi"> दर्शनाभिलाषी</form:label>
<td class="input-text"><form:input type="text" class="text"
path="darshanAbhilashi" placeholder="दर्शनाभिलाषी भरें ..." />
</tr>
<tr>
<td class="column-name"><form:label path="swagatUtsuk">स्वागतोत्सुक</form:label>
<td class="input-text"><form:input type="text" class="text"
path="swagatUtsuk" placeholder="स्वागतोत्सुक के नाम भरें ..." />
</tr>
<tr>
<td class="column-name"><form:label path="vinit">विनीत</form:label>
<td class="input-text"><form:input type="text" class="text"
path="vinit" placeholder="विनीत के नाम भरें ..." />
</tr>
<tr>
<td class="btn-row" colspan="2"><input class="btn-submit"
type="submit" value="Submit" /></td>
</tr>
</tbody>
</table>
</form:form>
</div>
</section>
</body>
<html>
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter();
... set prepare filter, e.g. setting encoding
return new Filter[]{encodingFilter};
}