在Java+中使用jCrop裁剪图片;JSF2.0

在Java+中使用jCrop裁剪图片;JSF2.0,java,javascript,jsf,Java,Javascript,Jsf,我有一个加载图片的页面,用户可以裁剪它。问题是,(x1,y1)和(x2,y2)的值是js,我需要它们在我的backBean上。我怎样才能把它传给我的后腰 <script type="text/javascript"> $(function(){ $('#jcroptarget').Jcrop({ trackDocument: true, onChange: showCoords, onSelect: s

我有一个加载图片的页面,用户可以裁剪它。问题是,(x1,y1)和(x2,y2)的值是js,我需要它们在我的backBean上。我怎样才能把它传给我的后腰

<script type="text/javascript">

    $(function(){

        $('#jcroptarget').Jcrop({

        trackDocument: true,

        onChange: showCoords,

        onSelect: showCoords,

        aspectRatio: 1

        });
    });

    function showCoords(c)
    {

        $('#x').val(c.x);

        $('#y').val(c.y);

        $('#x2').val(c.x2);

        $('#y2').val(c.y2);

        $('#w').val(c.w);

        $('#h').val(c.h);

    };

</script>

<div>
    <label>X1 <input type="text" name="x" id="x" size="4" /></label>
    <label>Y1 <input type="text" name="y" id="y" size="4" /></label>
    <label>X2 <input type="text" name="x2" id="x2" size="4" /></label>
    <label>Y2 <input type="text" name="y2" id="y2" size="4" /></label>
    <label>W <input type="text" name="w" id="w" size="4" /></label>
    <label>H <input type="text" name="h" id="h" size="4" /></label>
</div>

$(函数(){
$('jcroptarget').Jcrop({
trackDocument:true,
onChange:showCoords,
onSelect:showCoords,
方面:1
});
});
函数showCoords(c)
{
$('#x').val(c.x);
$('y').val(c.y);
$('x2').val(c.x2);
$('y2').val(c.y2);
$('w').val(c.w);
$('h').val(c.h);
};
X1
Y1
X2
Y2
W
H

如果这些输入与提交给支持bean的形式相同,那么您可以从请求参数映射中获取它们:

Map params=FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
字符串x=params.get(“x”);
字符串y=params.get(“y”);
字符串x2=参数get(“x2”);
字符串y2=参数get(“y2”);
字符串w=params.get(“w”);
字符串h=params.get(“h”);

或者,您可以将它们声明为托管属性,以便JSF在构建请求范围的bean时设置它们:

@ManagedProperty(#{param.x})
私有整数x;
@ManagedProperty(“#{param.y}”)
私有整数y;
@ManagedProperty(“#{param.x2}”)
私有整数x2;
@ManagedProperty(“#{param.y2}”)
私有整数y2;
@ManagedProperty(“#{param.w}”)
私有整数w;
@ManagedProperty(“#{param.h}”)
私有整数h;

或者,您可以将这些输入绑定到bean属性,这样就不需要手动获取它们或将它们作为托管属性获取:

X1
Y1
X2
Y2
W
H
只有这些属性:

私有整数x;
私有整数y;
私有整数x2;
私有整数y2;
私有整数w;
私有整数h;
不要忘了修复jQuery选择器以预先添加
值:

$('#formId\\:x').val(c.x);
$('#formId\\:y').val(c.y);
$('#formId\\:x2').val(c.x2);
$('#formId\\:y2').val(c.y2);
$('#formId\\:w').val(c.w);
$('#formId\\:h').val(c.h);

您可能需要花一点时间阅读有关设置问题/答案格式的常见问题解答。代码的格式不应为“>”,而应至少缩进4个空格。你可以使用“编辑”视图中的{}小工具来做。它现在看起来更好了吗?是的,这更好了:-)我仍然在考虑实际的问题。在将值绑定到支持bean之后,如何使用值x,y,x2,y2,w,h获得裁剪的图像。我看到的所有代码都是用php编写的,在JSF@Amlan:只需使用Java 2D API即可。这一部分又与JSF完全无关。只需使用带有固定测试变量集的
main()
方法在普通Java应用程序中进行相同的实验/操作即可。一旦让它工作起来,就把代码放在一个独立的类/方法中,并从上的JSF支持bean操作方法调用它。