Java JSF表达式语言操作和求和值字段
我需要计算jsf数据表中收到的金额,并在列中显示这些字段的总和 A) 我需要在value1的EL表达式中计算所有项目的总和,并在total1字段中显示 B) 我需要在value2的EL表达式中计算所有项目的总和,并在total2字段中显示 C) 我需要总和1+总和2,并在字段中显示总和 Obs.:我从DatabaseBean接收值Java JSF表达式语言操作和求和值字段,java,jsf,sum,el,Java,Jsf,Sum,El,我需要计算jsf数据表中收到的金额,并在列中显示这些字段的总和 A) 我需要在value1的EL表达式中计算所有项目的总和,并在total1字段中显示 B) 我需要在value2的EL表达式中计算所有项目的总和,并在total2字段中显示 C) 我需要总和1+总和2,并在字段中显示总和 Obs.:我从DatabaseBean接收值 <p:dataTable id="table" value="#{valueBean.values}" var="item"> <p:column
<p:dataTable id="table" value="#{valueBean.values}" var="item">
<p:column >
<h:outputText id="value1" value="#{(item[0]*160)/100}" />
<f:facet name="footer">
<h:outputText id="total1" value="#...????" />
</f:facet>
</p:column >
<p:column >
<h:outputText id="value2" value="#{(item[1]*160)/100}" />
<f:facet name="footer">
<h:outputText id="total2" value="#...????" />
</f:facet>
</p:column >
<h:outputText id="total" value="#...????" />
...
</p:dataTable>
...
import java.util.ArrayList;
import java.util.List;
public class BagOfItems {
private static int COMMON_MULTIPLIER = 160;//here document where this comes from
private static int COMMON_DIVISOR = 100; //here document where this comes from
private class Item{
private int value1;
private int value2;
private int calculatedValue1;
private int calculatedValue2;
public Item(int[] values){
value1 = values[0];
value2 = values[1];
calculateValues();
}
public int getValue1() {
return value1;
}
public void setValue1(int value1) {
this.value1 = value1;
}
public int getValue2() {
return value2;
}
public void setValue2(int value2) {
this.value2 = value2;
}
public int getCalculatedValue1() {
return calculatedValue1;
}
public void setCalculatedValue1(int calculatedValue1) {
this.calculatedValue1 = calculatedValue1;
}
public int getCalculatedValue2() {
return calculatedValue2;
}
public void setCalculatedValue2(int calculatedValue2) {
this.calculatedValue2 = calculatedValue2;
}
public void calculateValues(){
calculatedValue1 = (value1 * COMMON_MULTIPLIER)/COMMON_DIVISOR;
calculatedValue2 = (value2 * COMMON_MULTIPLIER)/COMMON_DIVISOR;
}
}
private int totalValues1 = 0;
private int totalValues2 = 0;
private List<Item> items = new ArrayList<Item>();
public BagOfItems(List<DatabaseBean> databaseBeans){
initItems(databaseBeans);
}
private void initItems(List<DatabaseBean> databaseBeans){
for(DatabaseBean databaseBean : databaseBeans){
Item item = new Item(databaseBean.values);
items.add(item);
}
}
protected void sum(){
for(Item item : items){
totalValues1 += item.getCalculatedValue1();
totalValues2 += item.getCalculatedValue2();
}
}
public int getTotalValues1() {
return totalValues1;
}
public void setTotalValues1(int totalValues1) {
this.totalValues1 = totalValues1;
}
public int getTotalValues2() {
return totalValues2;
}
public void setTotalValues2(int totalValues2) {
this.totalValues2 = totalValues2;
}
public List<Item> getItems() {
return items;
}
public void setItems(List<Item> items) {
this.items = items;
}
public int getTotal(){
return (totalValues1 + totalValues2);
}
}
import java.util.ArrayList;
导入java.util.List;
公共类BagOfItems{
private static int COMMON_MULTIPLIER=160;//这里是它的来源文档
private static int COMMON_DIVISOR=100;//这里是它的来源文档
私人类项目{
私人投资价值1;
私人投资价值2;
私有int计算值1;
私有int计算值2;
公共项(int[]值){
value1=值[0];
value2=值[1];
calculateValues();
}
public int getValue1(){
返回值1;
}
public void setValue1(int value1){
此值为1.value1=value1;
}
public int getValue2(){
返回值2;
}
public void setValue2(int value2){
此参数为0.value2=value2;
}
public int getCalculatedValue1(){
返回计算值1;
}
public void setCalculatedValue1(int calculatedValue1){
this.calculatedValue1=calculatedValue1;
}
public int getCalculatedValue2(){
返回计算值2;
}
public void setCalculatedValue2(int calculatedValue2){
this.calculatedValue2=calculatedValue2;
}
public void calculateValues(){
计算值1=(值1*公共乘子)/公共除数;
计算值2=(值2*公共乘子)/公共除数;
}
}
私有整数totalValues1=0;
私有整数totalValues2=0;
私有列表项=新的ArrayList();
公共BagOfItems(列出数据库bean){
initItems(数据库bean);
}
私有void initItems(列出数据库bean){
for(DatabaseBean DatabaseBean:databaseBeans){
Item=新项(databaseBean.values);
项目。添加(项目);
}
}
受保护的无效金额(){
用于(项目:项目){
totalValues1+=item.getCalculatedValue1();
totalValues2+=item.getCalculatedValue2();
}
}
public int getTotalValues1(){
返回总值1;
}
公共无效集合totalValues1(整数totalValues1){
this.totalValues1=totalValues1;
}
public int getTotalValues2(){
返回totalValues2;
}
公共无效集合totalValues2(整数totalValues2){
this.totalValues2=totalValues2;
}
公共列表getItems(){
退货项目;
}
公共无效集合项(列表项){
这个项目=项目;
}
公共int getTotal(){
返回值(totalValues1+totalValues2);
}
}
用户界面会像这样
<p:dataTable id="table" value="#{bagOfItems.items}" var="item">
<p:column >
<h:outputText id="value1" value="#{item.calculatedValue1}" />
<f:facet name="footer">
<h:outputText id="total1" value="#{bagOfItems.totalValues1}" />
</f:facet>
</p:column >
<p:column >
<h:outputText id="value2" value="#{item.calculatedValue2}" />
<f:facet name="footer">
<h:outputText id="total2" value="#{bagOfItems.totalValues2}" />
</f:facet>
</p:column >
<h:outputText id="total" value="#{bagOfItems.total}" />
...
</p:dataTable>
...