저는 봄과 물건에 매우 익숙합니다.jsp 게시물은 컨트롤러에서 예기치 않은 메서드를 항상 호출합니다.
나는 봄을 배우려고 노력하고 있어요 이것은 로그인 페이지가 http://elizabetht.github.io/blog/2013/11/21/student-enrollment-using-mybatis-with-spring/
여기에 제공된 예제를 사용하고 마침내는 사용자 로그인 성공 페이지로 위임, 지금은 데이터의 테이블과 성공 페이지를 변경 , 데이터베이스에서 읽는 중. 사용자가 제출을 클릭하면 원하는 데이터를 데이터베이스에 저장하고 현재 테이블을 업데이트해야합니다.
그래서 나는 당신이 결국 온 클릭을 알 수 있습니다 이제
<div id="containers">
<%
StudentLogin name = (StudentLogin)request.getAttribute("name");
List<Cube> personList = (List)request.getAttribute("message");
String userName = name.getUserName();
for(Cube cube: personList){
String usedBy = cube.getUsedby().trim();
boolean alreadyUsed = (usedBy.length()>0);
String ipAddress = cube.getIp();
String cubeName = cube.getCubename();
String details = cube.getDetails();
String mainClass = (alreadyUsed)?"pricetab":"pricetabmid";
String buttonName = (alreadyUsed)?"Blocked":"Click Here!";
String usedBody = (alreadyUsed)?usedBy:userName;
String buttonclass = (alreadyUsed)?"button":"buttonmid";
String priceFooterClass =(alreadyUsed)?"pricefooter":"pricefootermid";
%>
<div class="<%= mainClass%> ">
<h1> <%= ipAddress%> </h1>
<div class="price">
<h2> <%= cubeName%> </h2>
</div>
<div class="infos">
<h3> <%= details%> </h3>
<h2> <%= usedBody%> </h2>
</div>
<div class="<%= priceFooterClass%> ">
<div class="<%= buttonclass%> ">
<a href="#" onClick="suc(name)"> <%= buttonName%> </a>
</div>
</div>
</div>
<% } %>
</div>
페이지 - 성공을 편집, 그래서 나는 포스트 호출을하도록되어이 스크립트를 제공하고 그 컨트롤러 -에 방법에 위임 받아야합니다
<script>
function suc(name){
var username = "";
var password = "";
var studentLogin = name;
$.post('success', { userName : userName,password:password }, function(data) {
$('#containers').html(data).hide().slideDown('slow');
});
}
</script>
내 컨트롤러입니다 -
@Controller
@Scope("session")
public class StudentController {
private static final Logger logger = Logger.getLogger(StudentController.class);
@Autowired
private StudentService studentService;
@Autowired
private CubeService cubeService;
@RequestMapping(value="/signup", method=RequestMethod.GET)
public String signup(Model model) {
Student student = new Student();
model.addAttribute("student", student);
return "signup";
}
@RequestMapping(value="/signup", method=RequestMethod.POST)
public String signup(@Valid @ModelAttribute("student") Student student, BindingResult result, Model model) {
if(result.hasErrors()) {
return "signup";
} else if(studentService.findByUserName(student.getUserName())) {
model.addAttribute("message", "User Name exists. Try another user name");
return "signup";
} else {
studentService.save(student);
model.addAttribute("message", "Saved student details");
return "redirect:login.html";
}
}
@RequestMapping(value="/login", method=RequestMethod.GET)
public String login(Model model) {
StudentLogin studentLogin = new StudentLogin();
model.addAttribute("studentLogin", studentLogin);
return "login";
}
@RequestMapping(value="success", method=RequestMethod.GET)
public String success(Model model) {
CubeData cubeData = new CubeData();
model.addAttribute("cubeData", cubeData);
return "success";
}
@RequestMapping(value="success", method=RequestMethod.POST)
public String success(@Valid @ModelAttribute("cubeData") CubeData cubeData, BindingResult result,Model model) {
logger.debugf("sss", result);
return "signup";
}
@RequestMapping(value="/login", method=RequestMethod.POST)
public String login(@Valid @ModelAttribute("studentLogin") StudentLogin studentLogin, BindingResult result,Model model) {
logger.debug(result);
logger.debug(studentLogin);
if (result.hasErrors()) {
return "failure";
} else {
boolean found = studentService.findByLogin(studentLogin.getUserName(), studentLogin.getPassword());
if (found) {
List<Cube> cubes = cubeService.getCubes();
model.addAttribute("name", studentLogin);
model.addAttribute("message", cubes);
return "success";
} else {
return "failure";
}
}
}
}
내가 당 많은 실행하려고 m 조합,하지만 항상 버튼을 클릭하면 다시 로그인 페이지로 위임하고 오류 userName을 찾지 못했지만, 나는 그것이 성공의 블록에 컨트롤러에 정의되지 않은 이유를 알고 싶습니다.
을했다, 당신은 "사용자 이름"으로 변수 이름을 부여했지만 그 변수에 액세스 할 때, 당신은 사용 된 "userName"한번 확인해보십시오 .... – ssm