C:for:each 如果将参数传递给 List 方法,则无法获取值
C:for:each not getting the values if a pass a parameter to the List method
我有一个 java class,其中我有一个方法,该方法采用一些参数,例如
下面是我的 java 代码,它有一个 getoutlet 方法
public List<String> getoutlet(String idDB) throws ClassNotFoundException, SQLException {
List<String> list = new ArrayList<String>();
con = DBConnection.createConnection();
statement = con.createStatement();
String sqlOutlet="select CUSTOMERDESCRIPTOR from ecustomer where CUSTOMERIDENTIFIER in(select CUSTOMERIDENTIFIER from mt_distributrol where mt_distributr_vcdistributrcode = '"+idDB+"')";
try {
ResultSet resultSet = statement.executeQuery(sqlOutlet);
while (resultSet.next()) {
list.add(resultSet.getString("CUSTOMERDESCRIPTOR"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
如果我输入 system.out.print 它会给我列表 [jayanagar,malleshwaram,kolar,ol1]
但是在使用 c:for:each
从 UI (jsp) 调用时抛出错误
我将 idDB 作为参数传递
现在在列表中我变得像这样
[jayanagar,malleshwaram,kolar,ol1]
现在我在我的 jsp 中通过 c:for:each 调用此方法以将其填充到 select 选项中,但问题是它抛出错误
就像我的 c:for:each 代码是
<jsp:useBean id="obj" class="com.touchpoint.Dao.Outlet" scope="page" />
<select id="all" name="outlet">
<option>ALL</option>
<c:forEach var="item" items="${obj.outlet}">
<option>${item}</option>
</c:forEach>
</select>
如果我没有向我的 getoutlet 方法传递任何参数,那么它工作正常,但现在我必须根据要求传递一些参数,它显示的错误是 '${obj.outlet }' 属性 'outlet' 未找到 com.touchpoint.Dao.Outlet 插座是我的 java class 名称
所以那里的任何人都请帮助我
这是我的javaclass
public class Outlet {
Connection con = null;
Statement statement = null;
ResultSet resultSet = null;
public List<String> getoutlet(String idDB) throws ClassNotFoundException, SQLException {
List<String> list = new ArrayList<String>();
con = DBConnection.createConnection();
statement = con.createStatement();
// String sqlOutlet="select CUSTOMERDESCRIPTOR from ecustomer where CUSTOMERIDENTIFIER in(select CUSTOMERIDENTIFIER from mt_distributrol where mt_distributr_vcdistributrcode = '"+idDB+"')";
String sqlOutlet="select * from ecustomer')";
/*System.out.println(idDB);*/
try {
ResultSet resultSet = statement.executeQuery(sqlOutlet);
while (resultSet.next()) {
list.add(resultSet.getString("CUSTOMERDESCRIPTOR"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
}
它正在返回我 [jayanagar,malleshwaram,kolar]
现在我想在 select 选项下拉列表中显示此列表
这是一种方法(解决方法)。
豆子Class:
public class MyBean {
private String paramInfo;
public void setParamInfo(String p) {
paramInfo = p;
}
public String getParamInfo() {
return paramInfo;
}
public List<String> getStuff(String param) {
param = paramInfo; // substitute the value here
List <String> list1 = Arrays.asList("A", "B", "C");
List<String> list2 = new ArrayList<>();
list2.addAll(list1);
list2.add(param); // use the param value here
return list2;
}
}
注意:我没有更改方法的签名getStuff(String param)
;这仍然接受 String
参数。我添加了一个新 bean 属性 来替代参数值。注意 bean 的新 属性 值 paramInfo
.
的用法
JSP 页:
<BODY>
<h2>Testing JSP</h2>
<jsp:useBean id="obj1" class="app.MyBean" scope="page" />
<c:set var="param1" value="Z"/>
<jsp:setProperty name="obj1" property="paramInfo" value="${param1}" />
<c:set var="list1" value="${obj1.getStuff('')}"/>
<c:forEach var="item" items="${list1}">
<br/>ITEM: ${item}
</c:forEach>
<br><br>
<select name="list">
<c:forEach items="${list1}" var="item">
<option value="${item}"><c:out value="${item}" /></option>
</c:forEach>
</select>
</BODY>
注意:bean 的方法签名仍然保持不变。传递给该方法的值为空白 String
。标签<jsp:setProperty ...
实际上设置了参数值。
这样您就可以在 getStuff
方法中使用 paramInfo
属性 中的参数值。
结果:
ITEM: A
ITEM: B
ITEM: C
ITEM: Z
注意:可以改变bean中的doStuff
方法class不接受参数,用这种单独设置参数的方法。
我有一个 java class,其中我有一个方法,该方法采用一些参数,例如
下面是我的 java 代码,它有一个 getoutlet 方法
public List<String> getoutlet(String idDB) throws ClassNotFoundException, SQLException {
List<String> list = new ArrayList<String>();
con = DBConnection.createConnection();
statement = con.createStatement();
String sqlOutlet="select CUSTOMERDESCRIPTOR from ecustomer where CUSTOMERIDENTIFIER in(select CUSTOMERIDENTIFIER from mt_distributrol where mt_distributr_vcdistributrcode = '"+idDB+"')";
try {
ResultSet resultSet = statement.executeQuery(sqlOutlet);
while (resultSet.next()) {
list.add(resultSet.getString("CUSTOMERDESCRIPTOR"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
如果我输入 system.out.print 它会给我列表 [jayanagar,malleshwaram,kolar,ol1]
但是在使用 c:for:each
从 UI (jsp) 调用时抛出错误我将 idDB 作为参数传递 现在在列表中我变得像这样
[jayanagar,malleshwaram,kolar,ol1]
现在我在我的 jsp 中通过 c:for:each 调用此方法以将其填充到 select 选项中,但问题是它抛出错误
就像我的 c:for:each 代码是
<jsp:useBean id="obj" class="com.touchpoint.Dao.Outlet" scope="page" />
<select id="all" name="outlet">
<option>ALL</option>
<c:forEach var="item" items="${obj.outlet}">
<option>${item}</option>
</c:forEach>
</select>
如果我没有向我的 getoutlet 方法传递任何参数,那么它工作正常,但现在我必须根据要求传递一些参数,它显示的错误是 '${obj.outlet }' 属性 'outlet' 未找到 com.touchpoint.Dao.Outlet 插座是我的 java class 名称 所以那里的任何人都请帮助我
这是我的javaclass
public class Outlet {
Connection con = null;
Statement statement = null;
ResultSet resultSet = null;
public List<String> getoutlet(String idDB) throws ClassNotFoundException, SQLException {
List<String> list = new ArrayList<String>();
con = DBConnection.createConnection();
statement = con.createStatement();
// String sqlOutlet="select CUSTOMERDESCRIPTOR from ecustomer where CUSTOMERIDENTIFIER in(select CUSTOMERIDENTIFIER from mt_distributrol where mt_distributr_vcdistributrcode = '"+idDB+"')";
String sqlOutlet="select * from ecustomer')";
/*System.out.println(idDB);*/
try {
ResultSet resultSet = statement.executeQuery(sqlOutlet);
while (resultSet.next()) {
list.add(resultSet.getString("CUSTOMERDESCRIPTOR"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
}
它正在返回我 [jayanagar,malleshwaram,kolar] 现在我想在 select 选项下拉列表中显示此列表
这是一种方法(解决方法)。
豆子Class:
public class MyBean {
private String paramInfo;
public void setParamInfo(String p) {
paramInfo = p;
}
public String getParamInfo() {
return paramInfo;
}
public List<String> getStuff(String param) {
param = paramInfo; // substitute the value here
List <String> list1 = Arrays.asList("A", "B", "C");
List<String> list2 = new ArrayList<>();
list2.addAll(list1);
list2.add(param); // use the param value here
return list2;
}
}
注意:我没有更改方法的签名getStuff(String param)
;这仍然接受 String
参数。我添加了一个新 bean 属性 来替代参数值。注意 bean 的新 属性 值 paramInfo
.
JSP 页:
<BODY>
<h2>Testing JSP</h2>
<jsp:useBean id="obj1" class="app.MyBean" scope="page" />
<c:set var="param1" value="Z"/>
<jsp:setProperty name="obj1" property="paramInfo" value="${param1}" />
<c:set var="list1" value="${obj1.getStuff('')}"/>
<c:forEach var="item" items="${list1}">
<br/>ITEM: ${item}
</c:forEach>
<br><br>
<select name="list">
<c:forEach items="${list1}" var="item">
<option value="${item}"><c:out value="${item}" /></option>
</c:forEach>
</select>
</BODY>
注意:bean 的方法签名仍然保持不变。传递给该方法的值为空白 String
。标签<jsp:setProperty ...
实际上设置了参数值。
这样您就可以在 getStuff
方法中使用 paramInfo
属性 中的参数值。
结果:
ITEM: A
ITEM: B
ITEM: C
ITEM: Z
注意:可以改变bean中的doStuff
方法class不接受参数,用这种单独设置参数的方法。