我试图从关联ManyToMany恢复数据,但我不能,这是我的代码.
实体产品:
@Entity
public class Produit implements Serializable {
@Id
@Column(name="Produit_ID")
@GeneratedValue
private Long id;
private String dq;
private String icForme;
private String ich;
private String icht;
@ManyToMany(cascade = {CascadeType.ALL})
@JoinTable(name="produit_terminal",
joinColumns={@JoinColumn(name="Produit_ID")},
inverseJoinColumns={@JoinColumn(name="Terminal_ID")})
private Set<Terminal> terminals = new HashSet<Terminal>();
//getter setter
Run Code Online (Sandbox Code Playgroud)
实体终端:
@Entity
public class Terminal implements Serializable{
@Id
@GeneratedValue
@Column(name="Terminal_ID")
private Long id;
private String crimpkontakt;
private String equipment;
private String geometrie;
private String dcbt;
private String icb;
private String ak;
@ManyToMany(mappedBy="terminals")
private Set<Produit> produit = new HashSet<Produit>();
//getter …Run Code Online (Sandbox Code Playgroud) 我知道这可能是一个愚蠢的问题,我尝试谷歌搜索,但没有得到完美的答案.
我正在使用以下代码
<c:forEach var="aggregatedBatchProgressMetrics" items="${batchProgressMetricsList}">
<jsp:include page="html/tableContentsDisplayer.jsp">
<jsp:param name="batchProgressMetrics" value="${aggregatedBatchProgressMetrics}" />
</jsp:include>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
在html/tableContentsDisplayer.jsp里面,我有以下内容
<c:set var="aggregatedBatchProgressMetrics">${param.batchProgressMetrics}</c:set>
<tr>
<td class="tdcenter">${aggregatedBatchProgressMetrics["clientId"]}</td>
<td class="tdcenter">${aggregatedBatchProgressMetrics["instrumentStats"]["totalImntsCompleted"]}</td>
<td class="tdcenter">${aggregatedBatchProgressMetrics["instrumentStats"]["totalImntsRemaining"]}</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
aggregatedBatchProgressMetrics是我从c得到的:forEach是com.xyz.AggregatedBatchProgressMetrics类型的对象,而不是String,从它将其视为String对象的例外.我在bean里面有getClientId方法.此外,如果我按原样放置包含的jsp文件的内容(没有指令和c:set标签),它的工作绝对正常.有没有办法我可以使用jsp:param标签传递一个对象,并在接收端我得到它作为一个对象?
是否有可能使用jstl或我必须使用scriptlets /表达式相同?
谢谢,阿尔玛斯
我目前正在尝试构建一个复合组件,这就是我如何使用我的组件:
包括它 xmlns:albert="http://java.sun.com/jsf/composite/albert"
这是用法示例
<albert:infoButton
infoId="infoSingleRecord"
params="transDateFrom transDateTo"
mappingMethod="#{tBrowseBean_ConfirmedRPB.mapSendInfoSingleRecord}" />
Run Code Online (Sandbox Code Playgroud)
这是放在resources/albert/infoButton.xhtml中的组件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:composite="http://java.sun.com/jsf/composite">
<composite:interface>
<composite:attribute name="infoId" required="true" />
<composite:attribute name="params" />
<composite:attribute name="mappingMethod" method-signature="java.lang.String action()" />
</composite:interface>
<composite:implementation>
<p:commandButton
process="@this #{cc.attrs.params}"
actionListener="#{cc.attrs.mappingMethod}"
update="#{cc.attrs.infoId}Panel"
oncomplete="#{cc.attrs.infoId}Dialog.show()"
image="ui-icon ui-icon-search" />
</composite:implementation>
</html>
Run Code Online (Sandbox Code Playgroud)
但运行它,当单击infoButton时,此异常跟踪显示在我的catalina.out日志文件中:
Apr 25, 2011 10:08:43 AM javax.faces.event.MethodExpressionActionListener processAction
SEVERE: Received 'javax.el.PropertyNotFoundException' when invoking action listener '#{cc.attrs.mappingMethod}' for component 'j_idt71'
Apr 25, 2011 10:08:43 AM …Run Code Online (Sandbox Code Playgroud) 我有一个Java bean类如下
public class Users extends dbConnect
{
private int UserId;
public int getUserId()
{
return UserId;
}
public void setUserId(int userId)
{
UserId = userId;
}
}
Run Code Online (Sandbox Code Playgroud)
我在我的Servlet中有一个doGet方法,它获取javabean类中的值并在JSP页面中显示.ListUsers方法将从数据库返回一个列表.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
List<Users> arrUserList = new ArrayList<Users>();
Users objUser = new Users();
arrUserList = objUser.listUsers();
for(Users Userobj : arrUserList)
{
System.out.println(Userobj.getUserId());
}
request.setAttribute("arrUserDetails", arrUserList);
RequestDispatcher rst = request.getRequestDispatcher("ListUsers.jsp");
rst.forward(request, response);
}
Run Code Online (Sandbox Code Playgroud)
当我在for循环上面打印UserId的值时,显示UserId.But它没有显示在我的JSP页面中.
<%@ page import="com.acme.users.Users"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:forEach items="${arrUserDetails}" var="account">
<tr> …Run Code Online (Sandbox Code Playgroud)