基於瀏覽器請求的國際化實現

 代碼:

loginForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix= "form" uri= "http://www.springframework.org/tags/form" %>
<%@taglib prefix= "spring" uri= "http://www.springframework.org/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>測試基於瀏覽器請求的國際化</title>
</head>
<body>
<!-- 使用message標籤來輸出國際化信息 -->
<h3><spring:message code="title"/></h3>
<form:form modelAttribute="user" method="post" action="login">
    <table>
      <tr>
         <td><spring:message code="loginname"/></td>
		 <td><form:input path="loginname"/></td>
      </tr>
      <tr>
		  <td><spring:message code="password"/></td>
		  <td><form:input path="password"/></td>
	  </tr>
	  <tr>
			<td><input type="submit" value="<spring:message code="submit"/>"/></td>
	  </tr>
    </table>
</form:form>
</body>
</html>

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix= "spring" uri= "http://www.springframework.org/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>測試基於瀏覽器請求的國際化</title>
</head>
<body>
<spring:message code="welcome" arguments="${requestScope.user.username}"/>
</body>
</html>

User.java

package com.bean;

import java.io.Serializable;

public class User implements Serializable {
	private String loginname;
	private String password;
	private String username;
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	public String getLoginname() {
		return loginname;
	}
	public void setLoginname(String loginname) {
		this.loginname = loginname;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "User [loginname=" + loginname + ", password=" + password + ", username=" + username + "]";
	}
	
}

UserController.java

package com.control;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.support.RequestContext;

import com.bean.User;

@Controller
public class UserController {
	private static final Log logger = LogFactory.getLog(UserController.class);
	
	@RequestMapping(value="/{formName}")
	 public String loginForm(
			 @PathVariable String formName,
			 Model model){
		User user=new User();
		model.addAttribute("user",user);
		// 動態跳轉頁面
		return formName;
	}
	
	 @RequestMapping(value="/login",method=RequestMethod.POST)
	 public String login(
			 @ModelAttribute @Validated User user,
			 Model model,
			 HttpServletRequest request){
		 logger.info(user);
		 if(user.getLoginname()!=null && user.getLoginname().equals("haige")
				 && user.getPassword()!=null && user.getPassword().equals("123456")){
			//從後臺代碼獲取國際化信息username
			 RequestContext requestContext=new RequestContext(request);
			 String username=requestContext.getMessage("username");
			 // 將獲取的username信息設置到User對象並設置到Model當中
			 user.setUsername(username);
			 model.addAttribute("user", user);
			 return "success";
		 }
		 return "error";
	 }
}


截圖:




 源碼:網盤極速下載

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章