프로젝트 중 하나에서 Spring MVC 컨트롤러를 사용하고 있습니다.스프링 MVC 컨트롤러에 데이터가있는 텍스트 상자 값을 전달하는 방법은 무엇입니까?
다음은 3 개의 라디오 버튼이 표시 될 JSP 코드입니다. 하나는 Insert
이고 두 번째 라디오 버튼은 Update
이고 세 번째 라디오 버튼은 Delete
입니다.
@RequestMapping(value = "testOperation", method = RequestMethod.GET)
public Map<String, String> testOperation() {
final Map<String, String> model = new LinkedHashMap<String, String>();
return model;
}
@RequestMapping(value = "testOperation", method = RequestMethod.POST)
public Map<String, String> testOperations(@RequestParam String name,
@RequestParam String node,
@RequestParam String data) {
final Map<String, String> model = new LinkedHashMap<String, String>();
System.out.println(name);
System.out.println(node);
System.out.println(data);
return model;
}
- 아래
<script type="text/javascript">
function doDisplay(radio) {
switch (radio.value) {
case "Insert":
document.getElementById("inserts").style.display = "inline";
document.getElementById("updates").style.display = "none";
document.getElementById("delete").style.display = "none";
document.getElementById("dynamicName").value = "insert";
break;
case "Update":
document.getElementById("inserts").style.display = "none";
document.getElementById("updates").style.display = "inline";
document.getElementById("delete").style.display = "none";
document.getElementById("dynamicName").value = "update";
break;
case "Delete":
document.getElementById("inserts").style.display = "none";
document.getElementById("updates").style.display = "none";
document.getElementById("delete").style.display = "inline";
document.getElementById("dynamicName").value = "delete";
break;
}
}
</script>
<body>
<form method="post" action="testOperation">
<!-- I used only one hidden box to store value -->
<input type="hidden" name="name" id="dynamicName">
<input type="radio" name="tt" value="Insert"
onclick="doDisplay(this);" /> Insert <span id="inserts"
style="display: none"> <label for="Node"> Node </label> <input
type="text" name="node" size="20" /> <label for="Data"> Data </label>
<input type="text" name="data" size="100" />
</span> <br /> <input type="radio" name="tt" value="Update"
onclick="doDisplay(this);" /> Update <span id="updates"
style="display: none"> <label for="Node"> Node </label> <input
type="text" name="node" size="20" /> <label for="Data"> Data </label>
<input type="text" name="data" size="100"/>
</span> <br /> <input type="radio" name="tt" value="Delete"
onclick="doDisplay(this);" /> Delete <span id="delete"
style="display: none"> <label for="Node"> Node </label> <input
type="text" name="node" size="20" /> <label for="Data"> Data </label>
<input type="text" name="data" size="100"/>
</span> <br />
<input type="submit">
</form>
이 컨트롤러 코드 - 나는
Insert
라디오 버튼을 클릭하면
, 그것뿐만 아니라 다른 두 개의 라디오 버튼과 두 개의 텍스트 라디오 버튼을 삽입 옆의 상자와 같은 일을 보여
Insert
라디오 버튼을 클릭하고 첫 번째 텍스트에 Hello
을 입력하고 두 번째 텍스트 상자에 World
을 입력 한 다음 제출 버튼을 클릭하면 그 후이 표시됩니다변수의 값이 name
이 좋지만 hello,,
값이 node
이고 world,,
값이 data
변수에 있습니다.
업데이트 및 삭제와 동일한 문제.
이 문제를 방지 할 수있는 방법이 있습니까? 노드 변수에 hello
값만 표시되고 쉼표로 구분되는 대신 data
변수에 값이 표시됩니다.
아무도 도와 줄 수 있습니까?
이름이 "node"이고 이름이 3 인 3 개의 입력 텍스트 상자가 있기 때문이다 이름이 "data"인 텍스트 상자를 입력하면 삽입, 업데이트 및 삭제를 위해 "노드"및 "데이터"텍스트 상자를 다시 사용할 수 있습니까? 그래서 각자 1 명 밖에 없습니까? 표시/숨기기 자바 스크립트에서 라디오 버튼을 그냥? – indybee
@indybee : 좋은 지적이지만 어떻게 작동할까요? Radion 버튼을 삽입, 업데이트 또는 삭제를 클릭 할 때마다 두 개의 텍스트 상자를 표시해야합니까? 이게 아직도 작동할까요? 가능하다면 이것을위한 예제를 제공 할 수 있습니까? – AKIWEB
을 클릭하면 표시되지 않고 DOM- – arahant