//검색리스트 세션저장
HttpSession session = request.getSession();
if(session.getAttribute("result_".concat(fileName)) != null){
request.setAttribute("plantList", session.getAttribute("result_".concat(fileName)));
}
else{
어쩌고 저쩌고 소스
// 검색결과 세션저장...
session.setAttribute("result_".concat(fileName),articleList);
}
해결
http://www.okjsp.net/seq/265219
안녕하세요
밑에 질문이 있긴하지만
수정하는 것보다 새로 질문을 드리는 게 나을 것 같아서 다시 올립니다.
ArrayList<plant> articleList = new ArrayList<plant>();
String plantList = request.getParameter("getplantList");
if(plantList != null){
String plantList_token = plantList;
String[] array = plantList_token.split(",");
for(int i=0; i < array.length; i++){
System.out.format("array[%d] = %s%n", i,array[i]);
}
articleList = new ArrayList<plant>();
Collections.addAll(articleList, array);
이렇게 했는데 마지막 줄에 addAll에 빨간줄이 생깁니다.
The method addAll(Collection<? super T>, T...) in the type Collections is not applicable for the arguments (ArrayList<plant>, String[])
이런 문구가 뜨고요.
arraylist의 형식이 제네릭?형이면 쓸 수 없나요?
그렇다면 다른 방법이 있을까요?
아니면 어디가 틀렸나요?;;
답변 1 ]
조금 수정해봤습니다.
ArrayList<String> articleList = new ArrayList<>();
String plantList = "12312,123123,123,2132,123,123123,123123,122312";
if(plantList != null) {
// String plantList_token = plantList;
String[] array = plantList.split(",");
for (int i = 0; i < array.length; i++) {
System.out.format("array[%d] = %s%n", i, array[i]);
}
Collections.addAll(articleList, array);
for (int i = 0; i < array.length; i++) {
System.out.format("articleList[%d] = %s%n", i, articleList.get(i));
}
}
결과
array[0] = 12312
array[1] = 123123
array[2] = 123
array[3] = 2132
array[4] = 123
array[5] = 123123
array[6] = 123123
array[7] = 122312
articleList[0] = 12312
articleList[1] = 123123
articleList[2] = 123
articleList[3] = 2132
articleList[4] = 123
articleList[5] = 123123
articleList[6] = 123123
articleList[7] = 122312
결론
잘 됩니다. 코드가 난잡하긴 하지만요.
Java 8 로 컴파일 했습니다.
답변감사합니다. ㅜ
해주신 대로 해봤습니다.
ArrayList<plant> articleList = new ArrayList<plant>();
String plantList = request.getParameter("getplantList");
if(plantList != null){
String[] array = plantList.split(",");
for(int i=0; i < array.length; i++){
System.out.format("array[%d] = %s%n", i,array[i]);
}
Collections.addAll(articleList, array);
for (int i = 0; i < array.length; i++) {
System.out.format("articleList[%d] = %s%n", i, articleList.get(i));
}
}
이렇게요 그런데 여전히 addAll가 빨간줄입니다.
ArrayList<plant> articleList = new ArrayList<plant>(); 여기가 문제 인가요? ㅜ
답변1-1 ]
네. plant 가 무슨 bean 인지는 모르겠지만 String[] 의 각 요소, 즉 String 을 집어넣어야 하는데 plant 가 String 을 넣을 수 있는 형태(상속 받은)입니까?
제 코드에 왜 그 부분이 빠지고 String 이 대신 들어가 있는지 생각해 보시면 답이 나오겠죠.
------------->
왜 일까...
아..네 db의 데이터를 가져와야 해서 필요한데..
감사합니다. 더 들여다보겠습니다.
질문있습니다.
array가 string형태 이기 ?문에 <plant>는 매개변수?로 받을 수 없는 건가요?
그렇다면 제네릭 배열이란게 있는지 찾아보았는데 없는 것같습니다.
이경우 어떻게 해야 하나요?
*addAll() 메소드의 매개변수의 Collection<? extends E> 중 '? extends E'가 의미하는 것은
요소 클래스형 E를 상속받는 모든 클래스라는 의미다.
예를 들어 String의 경우 String을 상속받는 모든 클래스로 이뤄진 Collection객제를 매개변수로 받을 수 있다.
* http://ojava.tistory.com/32
답변1-2]
담는 그릇이 다르잖아요.
개체에 대한 개념을 전혀 못잡고 계신 것 같은데요...
아래 코드를 보시고...이해가 안되신다면, 다시 배우시길 적극 권합니다. T.T 제가 어디서부터 알려드려야 할지 감이 안잡히는 상황이라...
Plant.java
public class Plant {
String test1;
int test2;
public int getTest2() {
return test2;
}
public void setTest2(int test2) {
this.test2 = test2;
}
public String getTest1() {
return test1;
}
public void setTest1(String test1) {
this.test1 = test1;
}
}
Test.java (Main)
import java.util.ArrayList;
import java.util.Collections;
public class Test {
public static void main(String[] args) {
Plant data = null;
ArrayList<Plant> list = new ArrayList<>();
Plant[] array = new Plant[3];
// array 초기화
data = new Plant();
data.setTest1("test1");
data.setTest2(0);
array[0] = data;
data = new Plant();
data.setTest1("test2");
data.setTest2(1);
array[1] = data;
data = new Plant();
data.setTest1("test3");
data.setTest2(2);
array[2] = data;
// ArrayList 로 옮겨 담기
Collections.addAll(list, array);
for (Plant plant : list) {
System.out.format("articleList = %s / %d%n", plant.getTest1(), plant.getTest2());
}
}
}
결과
articleList = test1 / 0
articleList = test2 / 1
articleList = test3 / 2
'나의질문답' 카테고리의 다른 글
안드로이드 내장버튼 제어 ? 질문있습니다. (0) | 2014.11.17 |
---|---|
뒤로가기 버튼시 데이터 가지고 있다가 보여주기 (0) | 2014.11.11 |
string을 잘라서 arraylist에 넣기 (0) | 2014.11.11 |
.java파일에서 .jsp로 변수전달 (0) | 2014.10.30 |
java에서 jsp로 object형 arraylist넘기기 (0) | 2014.10.29 |